geen 401 of toch wel

Pagina: 1
Acties:

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
Ik heb in .htaccess bestand volgende regel toegevoegd.
ErrorDocument 401 /errors/401.php
Om mensen die met onjuiste username+password combi op de pagina krijgen te zien dat ze geen toegang hebben.
Tevens wordt deze actie in de database gelogd. (dmv 401.php)

Alle unauthorized requests worden netjes in de database gelogd maar het probleem is dat als iemand JUIST ingelogd heeft schijnbaar deze pagina (401.php) ook aangeroepen wordt (onzichtbaar) en dus in de database een melding ervan gemaakt wordt.
Hoe kan dat nou ?

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

licht aan je browser denk ik.. je browser zal die 401 header binnen krijgen en zelf een pagina er bij verzinnen. Dit heb ik mezelf ook vaak afgevraagd maar nooit echt naar opzoek geweest naar een antwoord. :+

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
de browser hoort toch helemaal geen 401 header binnen te krijgen als juist ingelogd is :?

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

jup je hebt gelijk, had het maar half gelezen schijnt..

dit is idd vaag..

Verwijderd

is er nie een bepaalde aanroep op de inlog pagina van bv een plaatje uit een andere afgeschermde dir?

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
Op woensdag 08 augustus 2001 23:58 schreef Kertje het volgende:
is er nie een bepaalde aanroep op de inlog pagina van bv een plaatje uit een andere afgeschermde dir?
al die dirs zijn beveiligd met hetzelfde wachtwoord dus dat lijkt me niet.
ALs ik na het inloggen gewoon naar een andere beveiligde directory ga vraagt die niet om een password (heeft die onthouden) dus lijkt me niet.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

Hmzz vreemd.
Je kan er natuurlijk wel een hack voor maken in dat 401.php script.

Ik neem aan, dat de username in de sessie wordt bijgehouden o.i.d. Als dan in dat 401.php script die username gezet is, dan moet hij de inhoud van het script overslaan.
Dit is dus wel een hack eromheen en niet de oplossing van je probleem uiteraard.

Verwijderd

Op donderdag 09 augustus 2001 00:06 schreef a casema user het volgende:

[..]

al die dirs zijn beveiligd met hetzelfde wachtwoord dus dat lijkt me niet.
ALs ik na het inloggen gewoon naar een andere beveiligde directory ga vraagt die niet om een password (heeft die onthouden) dus lijkt me niet.
heb je al getest met een zeer simpele test, dus
1 dir met 1 html file (ff nog geen php), en een .htaccess file die geen errordocs aanwijst.... wat doet ie dan? geeft ie dan ook een error terwijl het goed gaat? vanuit daar kun je dus opbouwen totdat j het prob hebt

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik had iig ook iets vreemds met een 401 error document, dat namelijk het document met 1 fout password al aangeroepen werd...

En sindsdien is dat het enige "niet custom" document dat ik heb :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Om mensen die met onjuiste username+password combi op de pagina krijgen te zien dat ze geen toegang hebben.
Tevens wordt deze actie in de database gelogd. (dmv 401.php)

Alle unauthorized requests worden netjes in de database gelogd maar het probleem is dat als iemand JUIST ingelogd heeft schijnbaar deze pagina (401.php) ook aangeroepen wordt (onzichtbaar) en dus in de database een melding ervan gemaakt wordt.
Hoe kan dat nou ?
De reden hiervoor is dat de browser bij elk document een Authorisation Required header krijgt. Hij zend dus bij elk request het passwd in MIME encoding terug. De reden hiervoor is dat HTTP stateless is.

Je kan dit dus testen door naar HHTP_USER oid te kijken. Waarom ie dan de pagina inlaad snap ik ook even niet...

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
Op donderdag 09 augustus 2001 00:59 schreef Kertje het volgende:

[..]

heb je al getest met een zeer simpele test, dus
1 dir met 1 html file (ff nog geen php), en een .htaccess file die geen errordocs aanwijst.... wat doet ie dan? geeft ie dan ook een error terwijl het goed gaat?
hoe moet ik nou achterkomen of ik een error krijg als ik errordocs weghaal of .php bestand niet gebruik?. Ik kan dus niet bij de logfiles van die server. En deze foutmelden vallen me dus alleen op omdat ik dit aan het loggen ben via de bovenbeschreven manier.
vanuit daar kun je dus opbouwen totdat j het prob hebt

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
Op woensdag 08 augustus 2001 23:58 schreef Kertje het volgende:
is er nie een bepaalde aanroep op de inlog pagina van bv een plaatje uit een andere afgeschermde dir?
nee, want de pagina wordt PERFECT geladen. (ook uit andere directory's), enig probleem is dat errordocument dus ALSNOG (onzichtbaar) wordt aangesproken.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

de errorlog kan toch wel is belangrijk zijn, maar misschien kijkt apache wel als routine of de ErrorDocument in de .htaccess bestaat ofzo. Wat je kunt doen is checken of $PHP_AUTH_USER niet null is....

Verwijderd

Je moet even proberen naat te gaan *wanneer* de 401 gegenereerd wordt.
Ben een tijdje geleden ook bezig geweest met logging via 401's om de brute force hackers de deny'en na X pogingen.

Volgens mij zat het zo:

1. - gebruiker wil membersectie in
2. - zijn browser probeert het gewoon zonder password en krijgt dus eerst een 401
3. - pas dan laat de browser de username/password dialog zien

Verwijderd

Op vrijdag 10 augustus 2001 12:43 schreef MarcoTC het volgende:
Je moet even proberen naat te gaan *wanneer* de 401 gegenereerd wordt.
Ben een tijdje geleden ook bezig geweest met logging via 401's om de brute force hackers de deny'en na X pogingen.

Volgens mij zat het zo:

1. - gebruiker wil membersectie in
2. - zijn browser probeert het gewoon zonder password en krijgt dus eerst een 401
3. - pas dan laat de browser de username/password dialog zien
Dat denk ik dus ook want het is een normale http get actie. En de apache server beantwoord met een password reactie. Maar door de normale get actie krijgt hij een 401 om de oren en waarop de apache meteen reageerd met een pwd string die hij moet laten zien.

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
jongens (en meisjes) het probleem is juist dat er schijnbaar ALTIJD een 401 aangeroepen wordt als men een beveiligde directory aangespreekt.
Ook als juiste password wordt gegeven en de beveiligde directory juist wordt weergegeven wordt het errordocument 401 alsnog onzichtbaar aangesproken !!
Dat is het probleem.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

Op vrijdag 10 augustus 2001 16:34 schreef a casema user het volgende:
wordt het errordocument 401 alsnog onzichtbaar aangesproken !!
alsnog?
Ik schreef dus:
Je moet even proberen na te gaan *wanneer* de 401 gegenereerd wordt.
vertaling:
Weet je zeker dat je je niet vergist en dat die extra 401 niet vooraf wordt gegenereerd in plaats van alsnog?

Het gaat om 1 extra 401.. right?

Sluit nou je browser eens af en start hem weer op.

- Ga nu naar de beveiligde directory en als je de username password dialog krijgt, doe dan niks (druk niet op OK of Cancel maar laat hem staan).

- Kijk nu of ie een 401 gelogd heeft.
Ja dus.

- Vul nu username en password in en click op OK.

- Kijk nu weer of ie een 401 gelogd heeft. Ja dus.

Voor uitleg, zie eerdere postings.

Verwijderd

PHP:
1
2
3
4
<?
Header("WWW-Authenticate: Basic realm=\"GOT Admin\"");
Header("HTTP/1.0 401 Unauthorized");
?>

Ik zal even jullie misterie oplossen :D

Aanschouw hierboven de headers die je met PHP moet verzenden wil je een L/P window krijgen. Merk op dat er een 401 wordt aangeroepen en je snapt de oorzaak van het probleem. MarcoTC & vele anderen hebben het al geroepen maar bij deze heb ik het onderbouwt :)

  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 04-05 21:28
Ik krijg inderdaad al een 401 melding als het password scherm verschijnt (en ik dus nog niet op enter gedrukt heb).

Maar hoe verkom ik dat juiste logins niet gelogd worden?
Controle uitvoeren of $PHP_AUTH_USER niet leeg is?

[edit]
maar als $PHP_AUTH_USER niet leeg is zou het ooknog kunnen dan het een 401 is omdat het bv de verkeerde user is die inlogd.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


Verwijderd

Wat jij wilt kan gewoon niet omdat die 401 al nodig is om de username/password dialog te laten zien.

Het is niet waterdicht maar misschien kun je een perl scriptje aanroepen vanuit een 1*1 <img> die op je errors/401.html staat ofzo. Op die manier wordt er alleen wat gelogd als de user de 401.html pagina ook daadwerkelijk ziet.
Pagina: 1