J'utilise actuellement le code suivant dans mes cm pour vérifier si visiteur est connecté en tant qu'administrateur pour qu'il puisse modifier la page en cours:Mauvaise gestion des variables de sessions PHP?
if($_SESSION['admin']=="1")
{
echo "<a href="foobar/?update">edit</a>";
}
Mais je suis inquiet que le code est dangereux. Les variables $ _session ne peuvent-elles pas être facilement modifiées par l'utilisateur?
Qu'est-ce qui serait plus sécuritaire?
Merci! La vérification de l'IP semble bonne; Je suppose que vous devriez stocker l'ip directement après session_start(), par exemple: session_start() $ _SESSION ["visitorIp"] = $ _SERVER ['REMOTE_ADDR']; Pas vrai? – AquinasTub
La vérification de l'adresse IP est en fait une mauvaise idée - il existe de nombreuses organisations avec des proxies qui signifient qu'un utilisateur peut sembler avoir plusieurs adresses IP. Cela affectait également tous les utilisateurs d'AOL - pas sûr si c'est toujours le cas. – Greg
@AquinasTub: Pas tout à fait. Vous ne vérifiez pas le visitorIp, juste l'écrivant. Cela devrait ressembler plus à si isset ($ _ SESSION ['username']) {/ * vérifie l'utilisateur ip */if ($ _SESSION ['visitorIp']! = $ _SERVER ['REMOTE_ADDR']) {session_unset(); header ("Emplacement:/login"); exit();}}/* Définit l'adresse IP de l'utilisateur */$ _SESSION ['visitorIp'] == $ _SERVER ['REMOTE_ADDR']; – phihag