Cześć!
Napisałem skrypt do logowania oraz kontroli sesji na każdej podstronie. Ale mam kilka pytań, skrypt wygląda mniej więcej tak:
logowanie.html > loguj.php( tutaj użytkownik jest autoryzowany oraz zmienna superglobalna $_SESSION zostaje ustawiona na login usera, następnie user zostanie przekierowany za pomocą header location na inną stronę a jeżeli błędnie wprowadził dane to wysyłamy go opcją header location do logowanie.html) > glowna.php (tutaj następuję kontrola sesji, jeżeli zmienna $_SESSION nie jest ustawiona do leci user na logowanie.html za pomocą header location).
A moje pytanie:
- Czy używanie header(loation:) do kierowania userów jest bezpieczne? I czy tak powinno się kierować userów? Chciałbym możliwie najbardziej oddzielić html od php i w skryptach nie umieszczać wyników bez wcześniejszej autoryzacji za pomocą pliku przejściowego takiego jak loguj.php, który służy tylko do tego, żeby kierować ruchem
- Czy kontrolę sesji na podstronach bezpieczniej byłoby sprawdzać w taki sposob:
if(isset($_Session[login]) && isset($_Session[id_w_bazie])){
$sql= select id,login from jakas_tabela where id=$id_w_bazie and login=$ogin
$wynik=db->query($sql)
if($_SESSION[login]==$wynik[1] && $SESSION[id]==$wynik[0])
return true;
else
return false
}
else return false;
Czy wystarczy samo if(isset($_Session[login]) && isset($_Session[id_w_bazie])) ?