Http-hitelesítés php

HTTP -autentifikatsiya PHP csak akkor lehetséges, ha fut a PHP Apache-modul, ezért nem állnak rendelkezésre a CGI-változat. A PHP script header () függvény is használható az Apache-modul, hogy küldjön egy üzenetet „Authentication Required”, hogy a kliens böngésző, ami a megjelenése azt a beviteli mezőbe felhasználónév / jelszó. Miután a felhasználó belép egy felhasználónév és jelszó, URL-t, PHP-script ismét meghívásra kerül a változók $ PHP_AUTH_USER, $ PHP_AUTH_PW és $ PHP_AUTH_TYPE, amelyek meghatározzák a felhasználó nevét, jelszavát és azonosítási típus volt. Jelenleg az egyetlen támogatott hitelesítés „Basic”. Lásd. Szintén a funkció header ().

Példa script fragmenst, ami jelentősen növeli a hitelesítési kliens:

Példa 17-1. HTTP azonosítási példa

Megjegyzés: Kérjük, legyen óvatos, amikor a HTTP fejlécek vonalak. Ahhoz, hogy maximalizálja a kompatibilitási garanciát az összes kliens, a kulcsszó a „Basic” kell írni az első „B” a felső regiszterben, a szabályozó / birodalmában karakterláncot kell idézőjelek közé (nem egységes), és pontosan egy szóközt kell előznie a kód „401”, a line "HTTP / 1.0 401" header'a.

Ahelyett, hogy egy egyszerű O $ és $ PHP_AUTH_USER PHP_AUTH_PW, akkor lehet, hogy ellenőrizze a helyes felhasználónevet és jelszót az adatbázis lekérdezés, vagy a felhasználó tartózkodási helyét, dBm-fájlban.

Ügyeljen arra, hogy az Internet Explorer. Ezek nagyon érzékenyek header'ov sorrendben. Küldése WWW-Authenticate fejléc HTTP / 1.0 401 fejléc a pillanatban egyfajta trükk lejátszó.

Annak megakadályozása érdekében írásban valaki egy forgatókönyvet, amely feltárja a jelszót az oldalhoz, hitelesíti a hagyományos külső mechanizmus PHP_AUTH változó nem lehet beállítani, ha a külső hitelesítés engedélyezve van az adott oldalon. Ebben az esetben a változó $ a REMOTE_USER lehet használni, hogy azonosítsa külsőleg hitelesített felhasználó.

Megjegyzés konfiguráció: PHP a jelenlét AuthType irányelv annak megállapítására, hogy a külső hitelesítés érvényes. Távolítsuk el ezen irányelv keretében, amelyben meg kell használni a PHP-hitelesítés (egyébként minden hitelesítési kísérlet sikertelen lesz).

Megjegyzendő azonban, hogy a fentiek nem akadályozza elrablásában, akik ellenőrzik a nem-hitelesített URL, a jelszó a hitelesített URL ugyanazon a szerveren.

És a Netscape Navigator és az Internet Explorer megtisztítja a helyi cache hitelesítést böngészőablakot hatálya / birodalmába, amikor választ kapott 401 szerver. Ez a „log out” (Kilépés) felhasználók, növelve az újbóli bevezetése felhasználónevét és jelszavát. Néhány ember használja ezt a „time out” bejelentkezések, vagy egy „log-out” gomb.

Példa 17-2. HTTP hitelesítést, amely arra kényszeríti az új név / jelszó

Ez a viselkedés nem igényel HTTP Basic azonosítási standard, ezért soha ne ettől függ. Vizsgálat a Lynx azt mutatja, hogy a Lynx nem tisztítja hitelesítés teljesítményt megválaszolása 401 szerver, tehát egy back, majd ismét előre, nyissa meg a forrás, ha a hitelesítési paraméter nem változott. A felhasználó azonban nyomja meg a „_” törölje a hitelesítési adatokat.

Szintén fontos megjegyezni, hogy ez nem működik a Microsoft IIS szerver, PHP és CGI-változat miatt a korlátozás IIS.

Megjegyzés: Ha a safe mode be van kapcsolva, uid a forgatókönyvet adunk a birodalom része a kupak WWW-Authenticate.