Hogyan, hogy egy jelszót egy oldalon

Jelszó oldalt. 1. rész inkább elméleti

Hozzáteszem két dolgot. Az első - ez hová tegye .htpasswd fájlt. Kísérletezéssel, azt tapasztaltam, hogy ha például az elérési utat a dokumentum egy hibaüzenettel (ErrorDocument) van írva azokkal a rendszer változó DocumentRoot. De az út a jelszó fájl (userfile) van írva tekintetében a ServerRoot. Amennyire megértettem, fent fel ServerRoot .htpasswd lehetetlen - „../” nem érzékelhető. Mindezt annak érdekében, hogy képes tenni a jelszó fájl, például egy szinttel feljebb gyökérkönyvtárában egy webhelyet a fájl hozzáférési hálózat nem létezik.

A második - az, hogy a szkript tudja kideríteni, ki is nyílik, és a jelszavát: $ PHP_AUTH_USER változók és a $ PHP_AUTH_PW.

Minden oldalon a zárt terület csatlakozik kódot, mint ezt a fájlt:

Az első sor a bejelentkező törli az összes karakter, kivéve a betűket, számokat, kötőjelet és aláhúzást tartalmazhat. Ezután a sorok számát kapott ellenőrizzük, és csak akkor, ha egy sort kap hozzáférést. Más esetekben a felhasználó látni fogja a böngésző ablakban kéri, hogy adja meg felhasználónevét és jelszavát. Ha a felhasználó be van jelentkezve sikeres, a tömb $ user_row mi minden információt róla.

Természetesen a példa, hogy adtam, van néhány nagy hátránya. Ne másolja egy-egy, így nem esik áldozatul a jelszó találgatás kísérlet miatt
  • védelmét kiválasztása nem ide
  • ha a felhasználók tábla nagy, a kiválasztás a jelszó a támadó valószínűleg „töltse ki” bázis

És az utolsó a mai módszer - tárolja a titkosított adatokat egy cookie-t.

Input script ellenőrzi a felhasználónevét és jelszavát, és ad két cookie-kat. Az első - jelentkezzen be, hogy azonnal azonosítani a felhasználót (az adatbázis bejelentkezési mező, persze, egyedülálló, vagy akár egy kulcs). A második süti - lenyomatát a belépéskor, és a jelszót (a teljesség összeesküvés, én ezeket a sorokat a „Y” betű -, akkor szinte lehetetlen kiválasztani a hash :).

Minden más program, hogy a kód nem a következő. Lehetővé teszi, hogy a kérelmet az adatbázis - kiválaszt egy sort a kapott bejelentkezést. Ebből sor kerül a mező „log_time” és a jelszót, és teszi őket, a fent leírtak szerint, a hash. Összehasonlítja azt a tényt, hogy megkapta, és ha azok megegyeznek, kiad egy új cookie-hash ismét jelszóval, az idő és a „Y” betű, és egy kérést az adatbázishoz „UPDATE felhasználói SET log_time =»«WHERE login =„$ cookie_login”.

Jelszó oldalt. 2. rész: kiválasztás Lock

Amikor feltettem ezt a kérdést az utóbbi időben, én zapinali a helyén, azt mondják ezt, és lezárhatjuk a szerver „kisiklik”.

De először, zár kiválasztása. Közhelyek, de akkor is. A jelszó hossza tíz karakter a betűk a latin ábécé és a számok - egy csomó lehetőséget. Ha kiválasztja a jelszót 1.000.000 lehetőség a második, akkor lesz néhány ezer év alatt. De mivel ez a halandzsa nehéz megjegyezni, hogy gyakran a jelszó az értelmes szavakat. Néhány évvel ezelőtt megállapították, hogy a legtöbb jelszavak felveheted a segítségével a szótár 10.000 szót. Abban az időben, a féreg (vírus) jelent meg a hálózaton, amely felmászott UNIX szerverek segítségével a lyuk a védelmi és felvette a jelszavakat priveligirovanyh használó felhasználók. Unix rendszer helyesírási szótárban. Semmi nem kell, hogy húz körül!

Minden felhasználó, míg ő még nem lépett a helyes felhasználónevet és jelszót kell tekinteni rosszindulatú hacker. Azzal, amit meg kell csinálni, ha a felhasználó beír valamit rosszul?
  • feledékenység (ez a tisztességes helyszínek formochka „elfelejtett jelszó” küld a rendszer beállításait be ebben azonos e-mail jelszó)
  • élvhajhászás ( „mert nefig”)
  • jelszó találgatás szótár (a valószínűsége a sikeres kiválasztás nagy, olyan közel, hogy szükség van, különösen, ha a helyén egy kereskedelmi jellegű)
  • DoS-támadások (hogy ne terhelje túl a szervert, szükség van, hogy minimalizáljuk a műveleteket, amelyeket végrehajtja a szkript ilyen esetben)

Gondolkodtam, hogyan lehet okozzon túlterhelést a szerveren, ha a védelem mechanizmusa áll fájlokat. Kiderült, hogy könnyű (mennyibe fog kerülni - egy másik kérdés). Így például, a szerver nem tud fennmaradni, ha a script megpróbál 1000 másodpercenként megnyitni a fájlokat a felvételi és írni az adatokat őket. Mert miután 5 sikertelen bejelentkezési kísérletek a felhasználó azonnal megtagadják (nélkül adatrögzítés fájl), meg kell találni az IP-200 egyedi, amelyből öt alkalommal keresik. Ez lehetséges. Tarts bannerokrutilke html-banner öt tag:

A felhasználó így azonnal öt hívás szerveren ötször ír egy fájlba (by the way, az egyes böngészők felbukkan egy ablak, hogy adja meg a felhasználónév és jelszó). Tudod, hogy egy html oldalt öt ilyen képeket és magát az oldalt keresztül behelyezve iframe látogatott honlapon (via iframe - a mező hivatkozó nem találja alig khaljavnogo tárhely támogató csapat foglalkozik majd olyan dolgok, mint ásni a naplófájlok keresési hivatkozók.) . Ezek a példák, amelyeket adtam, persze, vannak nyújtva, de a tény, hogy csak akkor veheti igénybe az ilyen hátrány a rendszer bizonyult. By the way, olyasmi, mint ez előtt történt.

És itt van a program kód:

És ahelyett, hogy elérni a fájlokat dolgozunk az adatbázisban.

Egy ilyen mechanizmus terhelés alatt lesz gyorsabb és megbízhatóbb, mint a fájlok - alapján a gyakran használt adatokat pufferelt, és közvetlenül feldolgozni a RAM-ban.

Jelszó oldalt. 3. rész: A jelszó az adatbázishoz

Eljárás jel például a MySQL. Írja meg a funkciót, például mysql_die:

Kezdetben a program jelzi, hogy a gazda adatbázis szerver, és ha szükséges, a neve az adatbázisban:

És kapcsolódni a szerverhez változók időpontja: $ PHP_AUTH_USER és $ PHP_AUTH_PW.

És mégis. Most a hátrányokat. Természetesen, az ilyen védelem megpróbálja felvenni a jelszót (elvileg lehetséges, hogy csatolja a zárat, de aztán elvesztette a szépségét módszer). Jelszót, mert abban az esetben a védelem szerver eszköz küldi az egyértelmű. De ez elég baj az egyszerű feladat.

Kapcsolódó cikkek