www.manualy.net
logo
Originální stránky pro originální lidi. Výrobky chráněných dílen
Google

PHP Knihovna: Zabezpečené stránky

6.12. 2005 Vebloud PHP

Občas je třeba omezit přístup na některé stránky, například placený obsah, administrace systému ap. Mnohým začátečníkům dělá zabezpečení problémy, tudíž jsem pro tyto případy vytvořil malou knihovnu, se kterou je základní zabezpečení hračka.

Jedná se o jednoduchou knihovnu skládající se z několika souborů a není určená k ničemu jinému, než přihlášení, odhlášení a zabezpečení vybraných stránek. Předpokládá se, že uživatel ovládá základy PHP a MySQL. Kdo si chce upravit knihovnu dle svých požadavků, musí samozřejmě PHP a MySQL znát lépe. Ale vzhledem k tomu, že zdrojový kód je hustě komentován v češtině, tak budou i úpravy velice jednoduché.

V krátkosti vysvětlím význam souborů. V souboru index.php je přihlašovací formulář a skrytá část, ve které je odkaz na zabezpečenou stránku, v souboru login_procesing.php je zpracování informací, které přijdou z přihlašovacího formuláře, safe.php je určen k includování na každou stránku, kterou chceme zabezpečit. Musí být includován před jakýkoliv standardní výstup (stačí i prázdný řádek), protože používá přesměrování pomocí Header: Location. Soubor login.php obsahuje definici funkce check_login() a nastavení doby expirace. Vyznám souboru logout je jasný, stejně tak DB_connect.php a close_dbconn.php, safe_page.php je příklad zabezpečené stránky a sha1.php slouží k zahashování hesel, které chceme uložit do databáze uživatelů. Všechny soubory jsou ke stažení v jednom balíku spolu s tímto článkem v PDF. Obecný princip asi nejlépe znázorní Vývojový diagram:

Vývojový diagram
Vývojový diagram

Script je založen na sessions(odkaz), což je další kolekce proměnných podobně jako GET nebo POST, ale SESIONS se uchovávají na serveru a u klienta je buď v cookies nebo v URL session id, které identifikuje danou kolekci na serveru. Pomocí session budeme uchovávat ID uživatele, jeho přihlašovací jméno a čas poslední aktivity.

Při pokusu o přístup k zabezpečené stránce se zkontroluje zda session existuje a zda existují všechny proměnné, jestli se od poslední aktivity nezměnila IP adresa a jestli neuplynula doba exspirace (nastavitelná v souboru login.php). Pokud jsou splněny všechny podmínky, je uživatel puštěn dál, pokud něco nesedí, je přesměrován na stránku s přihlášením.

Kde zadá jméno a heslo. Formulář se odešle souboru login_procesing.php kde se zahashuje heslo a z databáze se vybere záznam, kterému odpovídá jak jméno tak heslo. Pokud je takový řádek jen jeden, vše je v pořádku a uživatel je přesměrován zpět na přihlašovací stránku, kde ale už není formulář k loginu, ale zabezpečený obsah. Pokud neexistuje žádný odpovídající účet, je uživatel přesměrován zpět na přihlášení, pokud nastane ještě jiná alternativa, která by nastat neměla, ale přesto je ošetřena, je uživatel přesměrován zpět na přihlášení s hlášením o chybě.

DatumAutorPříspěvek
11. 09. 2006 21:30 Lamicz

GPRS

15. 09. 2006 12:48 Vebloud

RE: GPRS

10. 08. 2007 13:28 yaz

Identifikace uživatele

13. 04. 2008 21:08 Vebloud

RE: Identifikace uživatele

01. 08. 2009 10:36 Urso

webdesign a MySQL

09. 10. 2009 00:03 Vebloud

RE: webdesign a MySQL

07. 10. 2011 15:09 DrFlDlFGrtBGtyHGtrFVrt

dancing butterflys mothers day flowers rose flowers and gifts meriden ct

26. 11. 2011 15:13 offestess

Prosim , pomoz mi najit nejlepsi datovani lokalit .

27. 11. 2011 02:58 JessyCherryGFR

does weed have yellow flowers flowers that resemble agapanthus and allium

27. 11. 2011 09:34 offestess

Prosim , pomoz mi najit nejlepsi datovani lokalit .

28. 11. 2011 06:08 JessyCherryGFR

lindenhurst funeral home flowers martha stewart cut flowers solution

06. 12. 2011 09:24 JessyCherryGFR

flowers under a glass dome mums the word flowers wildwood nj

03. 01. 2012 06:10 charley1988

big boobs in car

14. 01. 2012 21:32 offestess

Prosim , pomoz mi najit nejlepsi datovani lokalit .

21. 01. 2012 10:43 JukonyaR

Ďîńëŕ

23. 01. 2012 08:17 JukonyaR

Îáâîđ

09. 03. 2012 01:47 rayford1975

electric car locomotive corporation

28. 03. 2013 14:10 ReflootoRiz

Something you should know about the euro crisis