J'ai donc plusieurs façons d'essayer d'empêcher le piratage de session, l'une utilise le HTTP_USER_AGENT
et détecte si elle a changé au cours d'une session. Le problème est, si un utilisateur se connecte au site sur un téléphone mobile, et les changements de la vue mobile à une vue de bureau, les changements de l'agent utilisateur et l'utilisateur obtient l'erreur suivante:Sécurité de piratage de session
if (isset($_SESSION['HTTP_USER_AGENT']))
{
if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT']))
{
echo "Error: security issue #1 (Please use contact us if recieving this error)";
exit;
}
}
else
{
$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
}
Maintenant, je Je veux toujours cette petite couche de sécurité, mais je ne veux pas qu'un message d'erreur apparaisse et je veux que le site reste visible à l'utilisateur. Comment devrais-je faire cela?
Pourquoi ne pas utiliser SSL? – 01100110
"Je veux continuer à vérifier que l'agent utilisateur correspond, mais parfois je veux que ce soit correct si l'agent utilisateur ne correspond pas." - Êtes-vous sûr que cette vérification vous est utile? – Amber
La vérification de l'agent utilisateur ajoute absolument * rien * à la sécurité. Si vous corrigez votre code pour ne pas activer le détournement de session, vous pouvez simplement supprimer cette vérification et garantir une meilleure expérience à vos utilisateurs. Si vous ne le faites pas, vous êtes foutu de toute façon (et les pirates de Russion vont pwn votre site :) :) –