
Po představení primitivní autentizace/autorizace uživatele z minulého dílu tentokrát o tom, jak bezpečněji tento proces ošetřit. Při autentizaci uživatele, vstupujícího na chráněné www stránky lze využít agregát tzv. sezení (sessions) proměnných. Ty sice částečně spolupracují se "sušenkami" cookies, avšak jejich mechanizmus je bezpečnější. Článek je úvodem do politiky sesions proměnných s ohledem na bezpečnost a anonymitu uživatele.
Co vlastně od dokonalé autentizace vyžadujeme? Předně je to důvěryhodnost, a ta je zde absolutní, jelikož sessions jsou podobné cookies, avšak všechny operace, které s nimi provádíme jsou výlučně vestavěny do kódu PHP. To je jejich významná vlastnost. Takže agregát sesions proměnných cookies nijak neovlivňují!
Sesions proměnné jsou diskrétní!
Prostřednictvím sessions (česky - "sezení", myšleno u internetu) tvoří jejich proměnné na cestě
uživatel - server pouze náhodný textový řetězec/číslo. Je to velmi dlouhé jedinečné číslo tvořeno také písmeny. To je určeno k
identifikaci uživatele, který vstupuje na chráněnou www stránku.
Tedy maximální důraz na diskrétnost! Vždy, když uživatel vstoupí na stránku,
kde dochází k aktivaci sessions, systém mu ihned přidělí
unikární identifikační číslo. Data uživatele, např. o navštívených
stránkách, jménu uživatele, vstup do e-shopu apod., jsou ukládana výhradně do
databáze na serveru, takže je nikdo nepovolaný neuvidí. Platnost sesions pak končí momentem uzavření www stránky v prohlížeči uživatele.
Funkce "sesion_start"
V praxi to chodí tak, že na stránce, která má být chráněna, zcela na jejím začátku nahoře umístíme funkci session_start. Ta se postará o to, že identifikuje od uživatele existenci session (sezení). Pokud je najde dokíže nám zpřístupnit uložená data na serveru (v databázi, nebo pouze v paměti. Pokud se to nepodaři, dokáže vytvořit nové session (sezení) a pošle uživateli (ted již za pomoci cookies) unikátní identifikační číslo. Abychom nemuseli vždy na začátku takových chráněných stránek "sesuin_start" umísťovat, lze na serveru v konfiguračním souboru php.ini provést menší úpravu. Totiž v direktivě session.auto_start nastavit proměnnou na hodnotu 1 a tím vytvořit automatické volání funkce "sesion_start".
<?php
//session1.php
session_start();
session_register("username");
session_register("surname");
$username="prvni_jmeno";
$surname="druhe_jmeno";
echo "Byl vytvořen session ID:$PHPSESSID";
?>
K tomuto kódu upozorňuji, že vy, kteří pracujete s Windows, se nejprve podívejte, zda na svém PC máte ve Windows, instalaci PHP/php.ini, direktivu session_save_path nastavenou na složku tmp. Jinak nebudou mít data své místo a volání "session_start" skončí chybou! Viz.: PHP (4): Aktivace sessions. A také zde: PHP (11): Warning pro sessions.
Resumé
Ti, keří tuto problematiku dobře ovládají, tento text už jistě nečtou. Pro ostatní by výklad mohl stačit. Bude pokračovat v dalším díle, neboť tato teorie nepatří zrovna k nejlehčím. A tak je nutné si popis ujasnit, případně vyzkoušet. Zvu vás na další pokračování tohoto seriálu o autentizaci uživatele na chráněné webové stránky. Jinými slovy - jak si sami vyrobíte takovou autentizaci/autorizaci, vhodnou třeba pro E-shop a vůbec bezpečný přístup na webové stránky, na nichž vám záleží.
Autor: Květoslav Vícha
Aby jste mohli přidávat komentáře, musíte být přihlášený.