Avatar billede Slettet bruger
11. juni 2003 - 20:16 Der er 15 kommentarer og
1 løsning

HTTP digest authentication support

Understøtter PHP HTTP digest authentication? Som den understøtter HTTP basic authentication?

Manualen svarer ikke på dette.

Og nu hvor vi er igang: Er eneste forskel mellem digest og basic, at password overføres som md5 hash med digest?

På forhånd tak :)
Avatar billede phpgris Nybegynder
11. juni 2003 - 21:26 #1
PHP selv understøtter ikke Digest men det gør Apache. Du kan overlade authentication'en til Apache og bruge $PHP_AUTH_USER variablen.

Forskellen mellem Digest og Basic er at brugernavn, password, en "nonce"-værdi og URI'en ved Digest overføres som en checksum, typisk MD5.
Avatar billede Slettet bruger
11. juni 2003 - 21:29 #2
Det er jo også Apache der understøtter basic (og ikke PHP selv).

Så omformulerer jeg spørgsmålet. Hvordan laver en jeg en HTTP digest authentication fra PHP?
Avatar billede Slettet bruger
11. juni 2003 - 21:32 #3
Det var måske forkert formuleret. HTTP authentication er jo en del af HTTP standarden. Men Apache sørger bare for at PHP får brugernavn og password. Sådan har jeg ihvertfald forstået det. Please correct me if wrong.

Hvordan hænger dette sammen med digest vs. basic?

Og hvordan laver implementerer man digest authentication fra PHP?
Avatar billede phpgris Nybegynder
11. juni 2003 - 21:51 #4
Implementeringen af en Digest autencitering i PHP er den samme som for Basic. Blot skal du bruge htdigest i stedet for htpasswd til at lave password-filen.
Avatar billede phpgris Nybegynder
11. juni 2003 - 21:54 #5
I øvrigt er det rigtigt forstået at det er Apache der sørger for at PHP får brugernavn og password. Det gælder både for Digest og Basic.
Avatar billede Slettet bruger
11. juni 2003 - 21:56 #6
Er det svar du finder på nettet, eller er det her noget, du har styr på?
Avatar billede phpgris Nybegynder
11. juni 2003 - 21:56 #7
Hehe, det er noget jeg har styr på.
Avatar billede Slettet bruger
11. juni 2003 - 21:58 #8
Hvis der ikke er nogen forskel i implemeneteringen (og i de headers man sender til browseren) i PHP, hvordan ved klienten så at den skal sende brugernavn og password krypteret?
Avatar billede Slettet bruger
11. juni 2003 - 22:00 #9
Ved basic sendes brugernavn og password jo som plain text.
Avatar billede phpgris Nybegynder
11. juni 2003 - 22:05 #10
Ja ok, du skal naturligvis bruge "Digest" i stedet for "Basic" i WWW-Authenticate headeren. Men måden du implementerer det på en den samme, bortset fra formatet password-filen.
Avatar billede Slettet bruger
11. juni 2003 - 22:14 #11
Stik mig et link, hvor jeg kan læse noget om det.

Umiddelbart, ændrer jeg:
header('WWW-Authenticate: Basic realm="Administrator login til opret ny bruger"');

Til:
header('WWW-Authenticate: Digest realm="Administrator login til opret ny bruger"');

Så får jeg en 404 lignende fejl i browseren.
Avatar billede phpgris Nybegynder
11. juni 2003 - 22:17 #12
Har du oprettet password-filen korrekt?
Avatar billede Slettet bruger
11. juni 2003 - 22:23 #13
Jeg har intet oprettet. Men det er jo også ligemeget. Jeg sender bare den header og får en 404 agtig fejl.

Men noget andet jeg ikke fatter er, hvis password og brugernavn sendes som md5 hash gør vel ikke sikkerheden meget bedre (fremfor plain text)?

Hvis man kan sniffe netværkstrafik og få adgang til det krypterede brugernavn og password, så har man jo adgang til systemet alligevel. Eftersom man så bare sender dette til serveren istedet.

Måske skulle jeg læse lidt på lektien. Har du nogle gode links?
Avatar billede phpgris Nybegynder
11. juni 2003 - 22:40 #14
Nej, det er ikke helt ligegyldigt. Får du faktisk en 404-fejl eller er det f.eks. 401?

Nej, du kan ikke bare sniffe en checksum og sende den som svar til serveren. Når du (klienten) sender en forespørgel til en Digest-beskyttet side sender serveren dig en vilkårlig "nonce"-værdi. Den korrekte checksum generes udfra denne værdi. Da chancen for at den nonce du får er den samme som den den sniffede checksum er genereret udfra er uhyrlig lille vil det ikke kunne lade sig gøre i praksis at skaffe sig adgang med en sniffet checksum.

Hvis du vil være grundig kan du læse RFC 2069 der specificerer Digest: http://ftp.ics.uci.edu/pub/ietf/http/rfc2069.txt
Avatar billede phpgris Nybegynder
11. juni 2003 - 22:44 #15
Kan du i øvrigt ikke lige poste det script du bruger?
Avatar billede phpgris Nybegynder
11. juni 2003 - 23:07 #16
Faktisk er den her vist den gældende: http://ftp.ics.uci.edu/pub/ietf/http/rfc2617.txt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester