Toon posts:

[.htaccess] Uitloggen?

Pagina: 1
Acties:
  • 183 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Is het mogelijk om .htaccess authenticatie ongedaan te maken door middel van een uitlog-button?

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 22-08 10:32

wiho

Certified Nerd

Goh, je was zeker helemaal vergeten om de FAQ te lezen... >:)

Samenvatting FAQ: het probleem ligt bij de browser, niet bij de webserver, en helaas biedt geen enkele browser tot op heden de mogelijkheid om uit te loggen.

"Pas als het proces gecrashed is, dumpt men de core"


Verwijderd

Topicstarter
Ik heb zeker wel wat gelezen. Op http://www.columbia.edu/acis/webdev/password-logout.html staat een mooie uitleg, maar dat krijg ik niet werkend. Ik krijg er een server error door :r

  • wiho
  • Registratie: Februari 2000
  • Laatst online: 22-08 10:32

wiho

Certified Nerd

Hmm... originele aanpak, maar beetje omslachtig. Gebruikers moeten een blanco wachtwoord intypen om uit te loggen...? Niet echt intuitief. En kennelijk ook geen officieel ondersteunde methode, anders zou 'ie wel in de Apache documentatie genoemd worden (en zou je waarschijnlijk geen server error krijgen :)).

"Pas als het proces gecrashed is, dumpt men de core"


Verwijderd

Op de website van apache staat deze manier ook beschreven.
Teminste dit lijkt me hetzelfde.

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Het idee erachter is eogenlijk ook niet dat je inlogd op de server. Bij elke request worden nl. die authenticatie header opnieuw van en naar de server/browser gestuurd. Je browser is echter meestal zo vriendelijk om de username en het wachtwoord te onthouden, zodat je niet bij elke request opnieuw dat hoeft in te typen.

Aangezien je feitelijk dus niet op de webserver inlogd, kan je ook niet uitloggen.

Wat je zou kunnen proberen is om de browser te vertellen dat ie op moet houden met het cachen van de username en wachtwoord. Meestal onthoud de browser dat samen met de url en kijkt ie of het nogsteeds dezelfde browser session is. Een mogelijkheid zou dus kunnen zijn om de browser met een redirect header door te sturen naar een script in een ander pad, die de browser vervolgens weer terug redirect naar de originele locatie.

Verwijderd

Topicstarter
Als dit mogelijk zou zijn, dan is er vast ook een bestaand script oid voor.
Helaas heb ik dat nog nergens kunnen vinden, dus wie het weet mag het zeggen! (8>

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 25-08 19:08

pietje63

RTFM

ik heb ooit gehoord als je een error 505 (ik dacht 505) pagina simuleert dat hij dan auto uitlogd
maar ik kreeg het niet werkend

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Verwijderd

Topicstarter
Helaas, 505 is het in ieder geval niet.

HTTP 501 Niet geïmplementeerd (IE5.5)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Misschien kun je 1x een 403 sturen. phpMyAdmin kan ook uitloggen van basic authentication, als je door die source gaat spitten vind je vast wel wat handigs.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Pietb
  • Registratie: Maart 2001
  • Niet online
Op maandag 08 juli 2002 13:43 schreef Gerco het volgende:
phpMyAdmin kan ook uitloggen van basic authentication, als je door die source gaat spitten vind je vast wel wat handigs.
Maar die gebruikt dan ook geen .htaccess toch?

Je kan met PHP wel hetzelfde bereiken als met .htaccess (staat in de manual ergens) en dan kan je wel uitloggen, vraag me alleen niet hoe ;)
Het was iets met iedere keer een andere realm of zo...

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op maandag 08 juli 2002 13:49 schreef Pietb het volgende:
Maar die gebruikt dan ook geen .htaccess toch?
Inderdaad, die gebruikt basic autentication (net zoals .htaccess als je dat zo instelt), maar als je er met PHP van kan uitloggen (immers, eenmaal 'ingelogd' is het niet meer relevant hoe die autentication begonnen is), kun je dat ook gebruiken voor je eigen geval waarbij je dan met .htaccess inlogt en met PHP weer eruit.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • wiho
  • Registratie: Februari 2000
  • Laatst online: 22-08 10:32

wiho

Certified Nerd

Op maandag 08 juli 2002 13:53 schreef Gerco het volgende:

[..]

kun je dat ook gebruiken voor je eigen geval waarbij je dan met .htaccess inlogt en met PHP weer eruit.
Ehm... heb je de thread eigenlijk wel gelezen? PHP authenticatie is wezenlijk anders dan .htaccess authenticatie. Het probleem is dat bij de .htaccess-methode de browser de login-gegevens zelfstandig cached en met iedere volgende request meestuurt. Een server-based methode als PHP kan de browser-cache niet beinvloeden, en dus ook niet de gebruiker uitloggen.

"Pas als het proces gecrashed is, dumpt men de core"


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op maandag 08 juli 2002 14:22 schreef wiho het volgende:
Ehm... heb je de thread eigenlijk wel gelezen? PHP authenticatie is wezenlijk anders dan .htaccess authenticatie.
Ja, ik kan nu gaan zeggen dat je eerst moet gaan leren waar je het over hebt, maar dat is niet aardig.

Het is met PHP wel degelijk mogelijk om basic autentication te laten doen op precies dezelfde manier als bij .htaccess. De browser ziet het verschil niet eens want: "Dat is er niet!".

Wat je gewoon doet is dezelfde headers naar de browser opsturen als apache zou doen bij een basic autentication en de respons netjes verwerken zoals apache dat zou doen (usertje opzoeken, passwd goed -> doorgaan, anders 403 roepen).

Wat voor autentication je gebruikt heeft niets te maken met het feit of je php gebruikt of niet, toegegeven, de meeste systemen die autenticatie gebruiken in PHP doen het met een HTML form en meer van dat soort leukigheidjes, maar dat is dus NIET de enige manier...

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • wiho
  • Registratie: Februari 2000
  • Laatst online: 22-08 10:32

wiho

Certified Nerd

Oeps... ik heb je vorige post inderdaad te snel gelezen en daardoor verkeerd geinterpreteerd (ik ging ervanuit dat je HTTP-authenticatie en PHP-sessions door elkaar gooide). :o Sorry!

Maar IMHO blijft het originele probleem overeind, nl. dat de diverse browsers geen methode aanbieden om de login/passwd info uit de cache te schoppen... dus ook PHP kan daar niets aan doen.

Er bestaan wel verschillende workarounds, zoals anderen in deze thread gepost hebben, maar ik ben nog geen enkele elegante, gebruikersvriendelijke methode tegengekomen.

"Pas als het proces gecrashed is, dumpt men de core"


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op maandag 08 juli 2002 17:32 schreef wiho het volgende:
Er bestaan wel verschillende workarounds, zoals anderen in deze thread gepost hebben, maar ik ben nog geen enkele elegante, gebruikersvriendelijke methode tegengekomen.
Ja, daar heb je gelijk in, er is mij geen echte oplossing bekend. De enige die mij te binnen schiet is een 403 header te sturen als je wilt dat de browser alles vergeet. Dan krijgt de gebruiker gewoon weer een login scherm voor zn neus.

Is niet bepaald netjes, maar meestal werkt het wel (voor zover ik weet).

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

in principe is het niet mogelijk om php uit te laten loggen als je met .htaccess bent ingelogd, php kan nou eenmaal niet met de browser praten, behalve als de browser meneren ie en netscape iets inbouwen. trouwens, dan wordt het javascript...
de enige manier om echt uit te loggen is dus in principe browser afsluiten... het is misschien niet zo elegant, maar ik denk dat de enige echte uitlog methode gewoon browser afsluiten is. Oftewel, waarschuw de gebruiker dat de browser afgesloten gaat worden en dan ben je uitgelogd...
jammer, maar doordat het de enige methode is, helaas...

Verwijderd

Topicstarter
Als 403 zou werken... kun je daar juist wel weer een mooie page achter hangen :P

  • Parcye
  • Registratie: Maart 2001
  • Laatst online: 24-08-2017

Parcye

Mr C

als je de vars op NULL zet... PHP_AUTH_USER en PHP_AUTH_PASWD en dan een page reload doet kom je er dan niet....

"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op dinsdag 09 juli 2002 01:50 schreef Parcye het volgende:
als je de vars op NULL zet... PHP_AUTH_USER en PHP_AUTH_PASWD en dan een page reload doet kom je er dan niet....
En dat is volkomen normaal, aangezien de browser bij iedere request de user en password opnieuw meestuurt. Leegmaken in je script heeft dus geen enkel effect.

Er bestaat (nu) gewoon geen manier om dit netjes en veilig te doen, je kan alleen maar workarounds gebruiken als browser sluiten en/of 403 sturen (als dat werkt).

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Op dinsdag 09 juli 2002 00:07 schreef NiGhTsPiRiT het volgende:
Als 403 zou werken... kun je daar juist wel weer een mooie page achter hangen :P
ik heb het niet getest, maar ik betwijfel of dit wel werkt... aangezien de browser volgens mij toch weer de gegevens stuurt... en misschien komt er dan iemand na je op de computer die dat toch weer weet te omzeilen...

Verwijderd

ik vraag me dan toch ernstig af waarom geen enkele browser hier een logout functie voor heeft gemaakt. Zelfs niet mozilla

Verwijderd

omdat ze het niet als een essentieele functie zien... is het eigenlijk ook niet omdat je automatisch uitlogt als je de browser afsluit...
het is dus eigenlijk meer een functie die de gebruiker tevreden stelt, dat hij voor z'n gevoel zeker weet dat het veilig is afgesloten...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 08 juli 2002 13:43 schreef Gerco het volgende:
Misschien kun je 1x een 403 sturen. phpMyAdmin kan ook uitloggen van basic authentication, als je door die source gaat spitten vind je vast wel wat handigs.
Nee ;)
Die stuurt een &old_account=acm mee als ik uitloggen kies, probeer maar eens.
Log in als gerco, log uit en probeer opnieuw in te loggen als gerco in dezelfde browser.
Zal niet lukken, verander dan de GET params in de adres-balk en probeer het opnieuw ;)

[edit]
Eerlijk gezegd _ben_ je dan wel uitgelogd natuurlijk... Omdat je browser dan denkt 'hee credentials zijn fout...' ;)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op dinsdag 09 juli 2002 11:30 schreef ACM het volgende:
Eerlijk gezegd _ben_ je dan wel uitgelogd natuurlijk... Omdat je browser dan denkt 'hee credentials zijn fout...' ;)
Precies mijn idee, wat je doet is aan je script laten weten welke user er wil uitloggen (old_account=blah) en dan als die user wil inloggen een 403 sturen. Dan denkt de browser: "heee, het is fout" en pleurt zn user/pass cache voor die site leeg.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 25-08 19:08

pietje63

RTFM

wat phpmyadmin doet is volgens mij gewoon opnieuw inloggen, en dus niet uitloggen....
vervolgens ga je inloggen, onder een nieuwe naam, waarna de php code controleert of dat niet de oude naam is...
als je echt dat ?olduser stukje weghaalt kun je volgens mij de pagina nog steeds openen

je blijft dus continu ingelogd

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21:49

Gerco

Professional Newbie

Op dinsdag 09 juli 2002 14:27 schreef pietje63 het volgende:
als je echt dat ?olduser stukje weghaalt kun je volgens mij de pagina nog steeds openen
Dat klopt, kan php ook niets aan doen, de browser stuurt de user/pass nog een keer...
je blijft dus continu ingelogd
Het hele probleem is: "Je logt helemaal NIET in, nooit, never." Bij iedere request stuurt de browser je user/pass weer mee en de enige manier om hem daarmee te laten ophouden is de browser afsluiten.

Alles wat hier gepost is is een (vieze) workaround, want er bestaat geen oplossing...

De enige oplossing die mogelijk is, is de browsers een knopje erbij om de user/pass cache te purgen of een extra HTTP code erbij (603 anyone?) om de browser te instrueren die user en pass te "vergeten".

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!

Pagina: 1