Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 22. 11. 2012, 14:52:31
Chtěl bych pomocí PHP umožnit alternativní obsah stránky při zadání HTTP přihlašovacích údajů. Je tu ale problém: Zdá se, že prohlížeč údaje pošle jen tehdy, když od serveru předtím dostane hlavičku WWW-authenticate, což je blbé, nechci totiž nijak obtěžovat uživatele, který údaje nezadá (přihlásit se lze i jinak).
Moje představa byla takováhle: if(function_exists("apache_request_headers")) { //Jen kontrola, jestli to jde $headers = apache_request_headers(); if(isset($headers["Authorization"])) { //Koukneme po hlavičce $login = explode(":",base64_decode(substr($headers["Authorization"],strpos($headers["Authorization"]," ")+1))); //Vidíme hlavičku, parsujeme $c = new Cmd($_POST["path"]); if($c->login($login[0],$login[1])) { $c-session_save(); header('WWW-Authenticate: Digest realm="Remote Command Line",qop="auth",nonce="'.uniqid().'",opaque="'.md5("Remote Command Line").'"'); //Potvrdím prohlížeči, že o přihlášení stojím } else { die("Bad credentials!"); //špatné přihlášení } } } Dík za jakoukoliv radu * 1) Nestojím o diskusi o zabezpečení 2) GET parametry používat umím |
||
Joker Profil |
#2 · Zasláno: 22. 11. 2012, 17:17:11
Darker:
Nebylo by stejně pohodlné na použití, ale snazší na naprogramování a bezpečnější uživateli vygenerovat nějaký token a tím ho pak (přes GET) přihlásit? |
||
span Profil * |
#3 · Zasláno: 22. 11. 2012, 19:24:45
Vyslovene sa tu ponuka použiť Sessions.
|
||
Darker Profil |
#4 · Zasláno: 22. 11. 2012, 21:32:08
span:
„Vyslovene sa tu ponuka použiť Sessions.“ Sessions aplikace používá. Session má omezenou platnost - do smazání cookie, nebo smazání souboru na severu. Joker: „ale snazší na naprogramování a bezpečnější“ Googlením jsem již zjistil, že udělat HTTP přihlášení tak, aby se nikdy nezobrazovaly dialogy ("Page is trying to trick you"/"Login required") nelze. Takže snažší rozhodně. Bohužel pro mně mělo použití toho http přihlašování spíš význam hračičky a frajeřinky, takže alternativní cesty pro mně nemají význam. Shrnuto: Nejde to. |
||
peta Profil |
Darker: Shrnuto: Nejde to. :)
Kdyz pouzijes formular a pomoci get to presmerujes http autentizaci, tak pri spravnem prihlaseni to funguje. Pri spatnem to samozrejme vyhodi dialog. https://uzivatel:heslo@darker.seznam.cz/apps/index.htm Mame v praci pc terminal, kde ma pro uzivatele bezet jen prohlizec. Ostatni veci z win jsou zablokovane. Takze, on ten prohlizec zavrit nemuze. A prihlaseneho ho tez nechat nemuzeme, protoze by mu nekdo omylem nebo schvalne zneuzil jeho ucet. Jo, odhlaseni se pak da jeste provest jedine tim, ze ho prihlasis na neexistujici ucet. |
||
Chamurappi Profil |
#6 · Zasláno: 23. 11. 2012, 11:22:10
Reaguji na peta:
„ze v podstate nejde uzivatele odhlasit, dokud se nezavrou vsechna okna prohlizece IE“ Pokud si dobře vzpomínám, tak Service Pack 2 pro Windows XP z bezpečnostních důvodů znemožnil v Exploreru přihlašování přes adresní řádek. |
||
Darker Profil |
Chamurappi:
„tak Service Pack 2 pro Windows XP z bezpečnostních důvodů znemožnil v Exploreru přihlašování přes adresní řádek.“ To rovnou mohli všechny ty internety zakázat. peta: Máš na mysli tohle? <form action="http://jmeno:heslo@example.com"><!-- ... ---> </form> „Nevyhoda tohoto prihlaseni je, ze v podstate nejde uzivatele odhlasit“ Čiže server nemůže říct ať prohlížeč heslo zapomene? Třeba přesměrováním na celou adresu bez přihlašovacích údajů? |
||
Časová prodleva: 11 let
|
0