Si t'es parano, le mieux c'est de reverifier a chaque page si les valeurs dans la session sont toujours valable.
Dans cet exemple, le cryptage est fait en sha1() : c'est mieux que md5()
Dans la base les pass sont crypté deux fois en sha1, dans la session une fois en sha1.
Code :
- if (!empty($_SESSION['login']))
- {
- $sql = sprintf("SELECT pass FROM table_users WHERE login = '%s'" ),mysql_real_escape_string($_SESSION['login']);
- if (!empty($_SESSION['pass'] && ($_SESSION['pass'] == sha1(mysql_result(mysql_query($sql),0))))
- {
- $logged=true;
- }
- }
|
Libre a toi d'inverser les conditions, et de mettre du die();, mais là en principe c'est blindé
Encore mieux tu ne stock pas en session le "login" mais plutot le "userid" qui est un chiffre, et si ce n'est pas is_numeric() alors gros die() dans la gueule (et du coup t'es sûr de ne jamais avoir d'injection sql).
---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3