Autor Zpráva
Martin XYZ
Profil *
Ahoj,

prosím o názor zkušenějších. Na několika stránkách mám vyřešeno zabezpečení přes SESSION...

Na každé zaheslované stránce je toto:
<?php
session_start();
if(!$_SESSION['LoggedInSecure']) header("location: ./login.php");
?>

A přihlášení z formuláře je takto:
<?php
session_start();
if (($_POST["login"] == "jmeno") && ($_POST["password"] == "heslo")) { 
$_SESSION['LoggedInSecure'] = true;
header("location: ./secured.php");}
?>

Dotaz - jak moc je toto bezpečné? Případně co by bylo lepší použít, aby se to nedalo snadno obejít?

Děkuji,
Martin
juriad
Profil
Změň to na:
if(!$_SESSION['LoggedInSecure']) {
  header("location: ./login.php");
  exit();
}
abys zajistil, že se zbytek skriptu neprovede.

Lepší než ukládat true do LoggedInSecure je ukládat přímo login nebo ID uživatele.

Po odhlášení předpokládám, že SESSION ničíš.

Další zlepšení je možné asi jen použitím SSL (https místo http).
Jan Tvrdík
Profil
juriad:
Další zlepšení je možné asi jen použitím SSL (https místo http).
Jen SSL? Co takhle zabezpečit web proti sessions fixation nebo session hijacking? Nebo co takhle nemít heslo v plain-textu?
Martin XYZ
Profil *
juriad: děkuji za úpravu skriptu, použil jsem Tvoje řešení. A po odhlášení session ničím, tak to snad takhle bude stačit :-).

Díky,
M.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: