Írja be php felhasználói hitelesítés, webfejlesztő blog

Először azt kell előírni a honlapon, és tegyük a gyökér a helyszín a sablon mappában. Mert ezt a leckét, hogy elegendő, ha a fájl egy űrlap beviteli és jelszavát, valamint a gomb „Bejelentkezés” gombra. A következő a kódja az alábbi űrlapot:

A fájl neve index.html.

Az űrlap kész, akkor hozza létre a legfontosabb iratai a jövőben a helyszínen - a fő kontroller, azaz a fájl gyökerét az oldalon - .. index.php. Hogy indul a bejáratnál, hogy az oldalon. Abban az időben az írás ezt a cikket a projekt kódját a fájl kerül sor 92, mi is kell messzire csak mintegy 25 sor. Itt a kód:

Most közelebbről szemügyre, hogyan működik.

Az első három sor, csak csatlakoztassa a fájlokat funkció, amely később felhasználható a kódot. Róluk egy kicsit később. Ezután ellenőrizze, hogy a paraméter-action = ki, hogy továbbítani. Amikor át, akkor a felhasználó rákattint a linkre, hogy a kibocsátási hely. Így a kódex ezt a hivatkozást. Add, hogy a fájl formában adja meg a kódot.

Funkció is, mint mindenki más, meg fogja vizsgálni később. Először is, a logikai ...

Most mi kell érteni az összes funkciót hívják ezt a kódot. Először fogom leírni a helyszínen bejelentkezési funkció:

És hozzon létre két süti: bejelentkezési név és jelszó az élettartamot - 50.000 másodperc. Az első írunk a belépés, és a második - a jelszó hash.

Ebben a sorban elvégezzük, hogy a funkció felelős az idő az utolsó tevékenység a felhasználó. Itt a kód ezt a funkciót:

Mindent. $ Array variánsokat lehet használni, hogy helyezze be a böngésző és a keresést. Úgy gondolom, hogy nem lesz feltétlenül egyezik meg. Kézzel biztosan kemény, de ügyes támadó automatizálja a folyamatot.

3. Lopás sütik megelőzhető titkosítja a kapcsolatot (https), legalább a legfontosabb oldalakat a webhelyen.
Mert ez a megközelítés, hogy ilyen oldalak csak https. Azonosítani a felhasználó számára, hogy egy másik vonal ezeken az oldalakon, talán még nagyobb hosszúságú. Ez egy szükséges időt. Steal A cookie-lehallgatás forgalom lehetetlen (nagyon-nagyon nehéz, mivel - egy másik történet).

Túl sok „de”. Az Ön helyet én jobban figyelni a következő sort:
mysql_query ( «SELECT * FROM felhasználók WHERE login = ''»)

Van egy nagyon nagy biztonsági rést. Vagy inkább - a lehetőséget, MySQL injekciót. A felhasználó képes rögzíteni Cook rosszindulatú kérelmet. Ez tényleg egy biztonsági rést. Sajnos csak sooo kódot írták régen régen átírt valós projektekben.

Sajnálom, megint nem működik (ha lehet eltávolítani az előző üzenetet). Próbáld újra, a teljes kódot az első üzenet:

Yuri, miért zavart md5 jelszót szappannal, só, és így tovább. D. Nem tetszik? Szerint a komplexitás nem így véletlenszerű karaktersorozat.
Amíg azonban az ötlet az, hogy állandóan különböző sorokban süti érdekes.

Körülbelül az SQL-injection - igen, igazad van. De ebben az esetben beszélek felhasználói hitelesítési sémát. Most sebezhetetlen módon - kell tárolni a cookie véletlen, nehéz kitalálni a vonalat. Minden manipulációk só - csak egy félreértés a lényeg. Te csak kapni, és világossá válik :).

Ha a kiválasztás végzett a PC, akkor természetesen lesz gyorsabb sokszor, de mivel több tördelő elegyített különböző paraméterek, beleértve a véletlenszerű, csökkenti a „nem” esélye. Rainbow táblák nem segít, mert az anyag a hash - szintén hash, de ezeket a táblázatokat épülnek tisztítható jelszavakat.

Ha felismerjük a kiválasztás sorozatot generál hash összes lehetséges kombinációját karakterek és összehasonlítjuk a kapott hash a hash-t a cookie-t, és tekintettel arra, hogy ez a jelszó egy cookie kivonatolt csak egyszer, és anélkül, hogy észrevenné, akkor ...
16 ^ 32 - variációinak száma (minusz egy kis mennyiségű ütközés). Nem veszik figyelembe, és alig jön ki)

jelszó találgatás szól. Ez egy másik kérdés. Egyszerűen nem érintette eddig. Beszéltem a matematikailag egyszerű és biztonságos módon a felhasználó azonosítására.
jelszó találgatás szól. Rájöttem van. Miután 3 meghibásodások kiadási CAPTCHA. És akkor is alkalmazni kell a késleltetés.

Köszönöm szépen. Amire szüksége van. Feliratkozom a frissítések :)

Azonban a hely, nem dicsekedni, és hívja valami idióta, mert a tényleges hiba a kódban nem vetted volna észre, és éppen a sorban, amit idézett a bejegyzést 🙂 Véleményem idiotizmus - figyelni, hogy csillag, amely azonban a vizsgálati projekt a jogot, hogy létezik, és a hiba nem a definíció, de ne nézd meg a tényleges sérülékeny ...

Az én stílusom a Popov az arc ...
Formatirovanie- szörnyű hibát ... +
Először van egy általános változó keresztül ellenőrizhető isset (),
és tartsuk lenyomva, és ellenőrizze az üres (), és nem == ellenőrzése előtt érvényességének jó lenne a trim ()
Ez amellett, hogy a bruttó biztonság megsértése

Anatolij nem goduet

- Túl sok felesleges lekérdezéseket az adatbázisban
- Kis ellenőrzés és feldolgozása a sorok
- Dehogy try / catch - legyen szép fogantyú kivétel!
- Általában nincs elég cross-platform. Regekspy természetesen kizárják karakter maradt, de ugyanazt az ellenőrző felvétel mágikus kavychem nem kell, hogy
- bejelentkezési név és jelszó a cookie általában nem tárolja. Tartsa véletlen hash és aydishnik napközben, például.
- Az idézett kód hibákat tartalmaz, ami szükséges foglalkozni a korrekciók

Az egyetlen dolog, ami tetszett - ez tényleg intuitív müködtetőalgoritmus + bár ez mit script válogatás révén mappák / almappák.

$ Rez = mysql_query ( "SELECT * FROM felhasználók WHERE login = $ login"); // lekérdezés sorok az adatbázisból a bejelentkezési, a megadott felhasználói

Lol. Amennyiben szűrés kéréseket? Ahol hasonló?