Autor Zpráva
Ikarus
Profil
Měl bych následující dotaz.

Můžu do php nějak převzít jméno uživatele + heslo zadané přes .htaccess?
(např mám zaheslovanou složku a podle zadaného jména a hesla má být uživatel nasměrován na daný dokument).

Díky moc.
Ikarus
Profil
a ještě... je možný uživatele nalogovanýho přes .htaccess nějak odhlásit?
Když se do složky naloguju, tak se tam můžu (ve stejném okně prohlížeče) naprosto libovolně vracet.
*Čvachta*
Profil *
Uživatel se odloguje zavřením okna prohlížče, pomocí php asi nelze ;-(
Yuhů
Profil
Jméno a heslo uživatele by měly být v proměnných

$PHP_AUTH_USER
$PHP_AUTH_PW

to jsou údaje zadané přes takové to systémové okénko. Jestli to ale jsou ta samá hesla, co při autentifikaci přes httpd.conf / .htacess, to nevím.
Polaroid
Profil
Pokud není tvoje stránka banka, tak není serverové autentifikace zapotřebí!

Je mnohem lepší to udělat přes databáze a sessiony!
Honza Hučín
Profil
Chápu, o co Ikarovi jde, měl jsem kdysi podobný problém. Kdyby to šlo, ušetřil by si práci s programováním databází a sessionů, o kterých píše Polaroid. Přiznám se, že odpověď neznám a nemám ani čas to zkoušet.
DoubleThink
Profil *
Pokud není tvoje stránka banka, tak není serverové autentifikace zapotřebí!

S tím bych si dovolil nesouhlasit. Objekvině totiž neexistuje jednodušší a praktičtější způsob, jak omezit přístup do určité oblasti serveru.
Navíc nastavení je na 5 řádků a je prakticky nenapadnutelné.

BTW:
Banky serverovou autentifikaci nepoužívají (hesla se dají snadno odchytávat po cestě). Zpravidla proto používají unikátní SSL certifikát.
Ikarus
Profil
$PHP_AUTH_USER funguje, moc díky.
Jinak je to opravdu mnohem jednodušší než nastavovat databázi a sessiony. Obzvlášť když mi jde o max 5 uživatelů...
DoubleThink
Profil *
Je to podivné - $PHP_AUTH_USER mi nefinguje.

Narazil jsem na fórum FutureQuest Community, kde popisují použití proměnné $REMOTE_USER. Ani ta mi nevrací jméno.

Pak jsem našel v phpinfo() proměnnou $REDIRECT_REMOTE_USER;, která už username obsahuje.

Jaktože to někomu funguje a jinému ne?
Honza Hučín
Profil
DoubleThink
Není to nějakým nastavením na serveru?
DoubleThink
Profil *
Co jsem tak zkoušel, tak to má asi co dočinění se safe-módem PHP.

Teď se naopak snažím vyřešit druhý Ikarův problém - donutit prohlížeč vyprázdnit cache se jménem a heslem.

V PHP manuálu se píše, že pokud prohlížeči podstrcíme hlavičku 401 a nový požadavek na autentifikaci, tak zpravidla vyprázdní cache s heslem.

Chová se to ale dost podivně - jednak to funguje jen po trojím odklepnutí přihlašovacího dialogu a co je zvlášť nepříjemné - pokud stiskete Storno, tak se nic nestane (stránka se sice přesměruje na 401, ale přihlašovací session v prohlížeči je stále aktivní).
Honza Hučín
Profil
Viděl jsem řešení (mysql phpAdmin), kdy se uživateli po odhlášení podstrčí znovu přihlašovací dialog. Když se uživatel nechce znovu přihlásit, dá Storno a tím pádem to autentifikaci zruší.
DoubleThink
Profil *
No to jo - jenže v tomto případě je to přihlášení pomocí PHP - dialog je vyvolán PHP a PHP jej také zpracuje - toto funguje.

Jenomže teď je problém, že u .htaccess a .htpasswd se to chová trochu jinak.
Ikarus
Profil
Jen dodám, že .htaccess jsem nezkoušel na localhostu. Nicméně, pokud mi někdo poradíte, co a kde jak nastavit aby se mi to chovalo stejně jako na hostingu (tzn. aby mi to .htpasswd bralo
uživatel:zašifrované_heslo
a uživatel a heslo byly v $PHP_AUTH_USER, $PHP_AUTH_PW), tak budu moc rád. Jináč jsem hledal to odhlášení a vypadá to tak, že opravdu jen zavřít prohlížeč:-(
Ikarus
Profil
UŽ JSEM NAŠEL NÁVOD NA ODHLÁŠENÍ!!!

http://www.webmasterworld.com/forum13/3147.htm

přesně dle návodu:
udělal jsem složku logout, dal tam uživatele logout:heslo_logout a pak odhlášení odkazem
http://logout:logout@www.server.xx/logout/

a hle ono to funguje:-)
Leo
Profil
Mam pocit, ze s timhle typem url mel IE nejake bezpecnostni problemy a tak to nove zaplatovane verze uz nepodporuji:

http://logout:logout@www.server.xx/logout/

Leo
Ikarus
Profil
Teď jsem na PC, kde je jen IE 5.0 a Firefox a v obojím to funguje.
Nicméně jestli to nefunguje všude, tak jsme tam, kde jsem byli:-(
llook
Profil
Nové verze IE tento typ URL pokud vím podporují, pouze část "user:pass" nezobrazí v řádce s adresou. Ale nezkoušel jsem, nejsem si 100% jistý.

Ty problémy spočívaly v tom, že IE zobrazuje v URL baru speciální znaky (ostatní je zobrazují ve formátu %XX). Bezpečnostní riziko bylo v tom, že pokud v URL byl nulový znak, tak na něm zobrazovaná adresa skončila, třeba "http://google.com%00@example.com/" se zobrazilo jako "http://google.com".
Ikarus
Profil
Tak v zaplatovanych IE 6 to "odhlášení" opravdu nejede:( Ví někdo co s tím???
DoubleThink
Profil *
No co jsem tak zkoušel, tak to pořádně nefunguje nikde - vždy se dá vrátit tlačítkem "Zpět".
Navíc se zobrazuje upozornění na nebezpečnost adresy s heslem.
Ikarus
Profil
Ve Firefoxu/Mozille mi to šlape úplně bez problémů. Tzn, že ta adresa s logout ji nevadí a když dám zpět, tak se mi zobrazí výzva k zadání jména a hesla.

V IE 5 a v nezáplatovaných IE 6 to je tak OK.

Jinak IE 6 hlásí "Neplatná syntaxe" a Opera zas po mě chce stejně zadat heslo logout...
Ikarus
Profil
tak tohle mi odepsali na hostingzdarma.cz na dotaz zda existuje nejake jednoduche reseni :

Ne. :( Vzhledem k tomu, ze HTTP autorizace je provadena tak, ze prohlizec pokazde znovu v hlavicce pozadavku posila jmeno a heslo... Sice existuje takovej trik, ze ho presmeruju na nejakou stranku, ktera mu vrati havicku 403 Forbidden, cimz prohlizec zapomene prihlasovaci udaje, ale nemusi to fungovat uplne spolehlive... A aby uzivatel tuto chybovo stranku nevidel, obvykle se to otevira v nejakem malinkem 1x1px iframe na konci dokumentu... Ale je to takovy drbani se levou rukou za pravym uchem...
Ikarus
Profil
nepřišel náhodou někdo na něco novýho ohledně možnosti odhlášení z .htaccess??
Tomáš
Profil *
Dotaz byl mimo téma a byl odstraněn moderátorem. Pro nové dotazy prosím zakládejte nová témata.
Toto téma je uzamčeno. Odpověď nelze zaslat.