Autor Zpráva
Darker
Profil
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í
    }
  }

}
Podle mojí představy by tak nepřihlášený uživatel mohl systému vstoupit jako nepřihlášený a nemusel by odklikávat přihlašovací dialog. A mohli by si přihlašovací údaje dát třeba do záložky v prohlížeči*.
Dík za jakoukoliv radu
* 1) Nestojím o diskusi o zabezpečení
2) GET parametry používat umím
Joker
Profil
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 *
Vyslovene sa tu ponuka použiť Sessions.
Darker
Profil
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
Nevyhoda tohoto prihlaseni je, ze v podstate nejde uzivatele odhlasit, dokud se nezavrou vsechna okna prohlizece IE nebo se cosi (co uzivatel hledat nebude chtit) nevyklika v nastaveni. Takze takove prihlaseni nedoporucuji pouzivat.
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
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>
V mém systému by o správném/špatném přihlášení rozhodovalo PHP, takže dialog mohu nahradit nějakou zprávou do HTML.

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ů?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: