digest
9 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
ako sa pouziva digest autorizacia v PHP? nemozem to na internete najst please, help
-
Mohu potvrdit, že na Internetu je toho o Digest autentifikaci opravdu hodně málo, narozdíl od Basic authentifikace. V jiných příspěvcích jsem psal o teorii Digest autentifikace: http://www.webzdarma.cz/forum/read.php?f=2&i=11065&t=11063 http://www.webzdarma.cz/forum/read.php?f=2&i=11194&t=11190 Teď napíšu praxi - narozdíl od teorie resp. bezpečnosti v naprosto odlišné rovině od Basic, je praxe s Digest praxi Basic velmi podobná. Ale nejlépe to poznáte z příkladu: Soubor .htaccess: AuthName "Soukroma slozka" AuthType Digest require valid-user AuthDigestFile /3w/wz.cz/n/WEB/SLOZKA/.souborshesly Soubor .souborshesly: uzivatel1:Soukroma slozka:3926efd781f7d330f3779b43426d2cf7 uzivatel2:Soukroma slozka:d13da9b2545b8c2070f2ccc658d0db91 A ty hodnoty na konci nejsou nic jiného, než MD5 hash hesel: prvni druhy
-
mistral: a na strane klienta musi byt tiez nejaky script? vsak tie hesla sa v subore .soborshesly same od seba nezakryptuju... ako prehliadac pozna ze ide o digest autentifikaciu, ci tam sa musi pisat nejaky zlozitejsi skript na prihlasenie? lebo podla prikladu co si napisal je to az prilisna podoba s basic.
-
"a na strane klienta musi byt tiez nejaky script? vsak tie hesla sa v subore .soborshesly same od seba nezakryptuju..." No samozřejmě je potřeba použít nějakej prográmek, kterej ty hesla zahashuje (nebo součástí Apache je aplikace htdigest, která vytvoří onen soubor s hesly nebo do něj přidá nového uživatele). Ale zahashování hesla je jedna řádka v PHP: echo md5("heslo"); nebo existují JS: http://pajhome.org.uk/crypt/md5/ A samozřejmě, že si jde napsat jednoduchej PHP skript, kterej ty uživatele do toho souboru bude přidávat taky - přidá se prostě řádka: username:realm:md5("heslo") Ostatně, zdroják htdigest je beztak na Internetu taky... "ako prehliadac pozna ze ide o digest autentifikaciu, ci tam sa musi pisat nejaky zlozitejsi skript na prihlasenie?" Skript si můžeš napsat, ale proč? Ulož to do souborů popsaných výše a o všechno ostatní se stará Apache. Ten udělá to samé, co by se posílalo ve skriptu, prostě HTTP hlavičku: HTTP/1.1 401 Authorization Required Date: Mon, 26 Apr 2004 08:38:58 GMT Server: Apache/2.0.48 (Unix) WWW-Authenticate: Digest realm="Soukroma slozka", nonce="nahodna hodnota", algorithm=MD5, qop="auth" Vary: Accept-Encoding Content-Encoding: gzip Content-Length: delka Connection: close Content-Type: text/html "lebo podla prikladu co si napisal je to az prilisna podoba s basic." Já za to nemůžu, prostě to tak je :-) "Kdo nevěří ať tam běží", nebo ať si to vyzkouší, že je to pravda :-)
-
ale ked potrebujem digest cez PHP a nie v .htaccess tak dam do PHP toto:? <? Header("HTTP/1.1 401 Authorization Required"); ... Header("WWW-Authenticate: Digest realm="Tajna zona", nonce=\""md5(UniqID())"\", algorithm=MD5, qop="auth"); ... Header("Content-Type: text/html") a potom if ($PHP_AUTH_USER == "jozo" && $PHP_AUTH_PW == "tajneheslo"): echo "vitaj, jozo" endif;
-
Proč to dělat jednoduše, když to jde složitě, že? Ne, tak jednoduchý to samozřejmě není - ono by to takhle vzhledem k použití MD5, hodnoty nonce apod. ani nedávalo smysl :-) Jestli to bereš takhle, tak s Basic to opravdu příliš podobu nemá (u Apache ano, protože ten už to má implementováno, ale když chceš použít mermomocí vlastní skript...). Viz použitá třída class: http://www.webzdarma.cz/forum/read.php?f=2&i=11094&t=11084 Mira 20. 04. 2004 16:12
-
ja potrebujem ochranu cez skript lebo potrebujem aj ine veci ako len chranit zlozku.Kazdy uzivatel bude mat zaznam v DB. Budu dve tabulky. V jednej bude login, heslo (MD5 hash), uroven, meno a priezvisko. V druhej bude login, uroven a session ked niekdo pojde na stranku napr. tajna1.php?sid=123456789 skontroluje sa ci je v druhej tabulke zaznam s takym session cislom ak bude zobrazi mu stranku a vygeneruje nove session cislo ktore v tabulke zmeni, inac mu zobrazi cez header okno s digest autorizaciou a skopiruje login uroven a vygeneruje nahodne session cislo v inich skriptoch bude kontrolovat aj uroven napr. skript admin.php bude vizadovat uroven 3 a ine len 2 alebo 1. odhlasenie len vymaze zaznam z druhej tabulky taktiez casom mozno doplnim aj logovaci subor, vypis on-line uzivatelov ktory su prihlaseni (maju zaznam v druhej tabulke) keby som potreboval len chranit zlozku tak to urobim v pohode, o tom je na webe dost, lenze o pouziti v PHP nic vopred diky Lackop
-
>> lenze o pouziti v PHP nic Jednoduse proto, ze to zatim nejde... Tečka: >> A ty hodnoty na konci nejsou nic jiného, než MD5 hash hesel U digest se hashuje username:realm:heslo, to je IMHO to, na co se nejvic zapomina...
-
Ano, už jsi mě opravoval v květnu ;-) http://www.webzdarma.cz/forum/read.php?f=2&i=11833&t=11770 V té době už jsem to dávno zkoušel, protože Digest je na wz od dubna, a md5 hashe do souboru s hesly jsem si počítal sám, nikoliv pomocí nějakého programu Apache, tak nevím, proč jsem tam plácal takovou blbost :-) To že to PHP nepodporuje je pro mě záhada stejně jako nepodpora odhlášení HTTP autentizace v prohlížečích (kromě Mozilly resp. Gecka)...