2009-08-21 9 views
0

ive a entendu un peu de temps que les sessions doivent être nettoyées avec mysql_real_escape_string ou htmlspecial car elles peuvent être modifiées. Qu'est-ce que je me demande est comment sont-ils modifiés parce que quand je regarde une session de sites Web nommé PHPSESSID la valeur qu'il contient est toujours cryptée. Tout d'abord, quelle méthode de cryptage utilise-t-elle et comment est-elle modifiée? la raison pour laquelle je veux savoir ceci est de mieux comprendre comment me sécuriser en fonction de quelles méthodes les gens utilisent là-bas pour les sessions high-jackquelques questions concernant les sessions php

merci.

Répondre

5

Ils ne peuvent pas être modifiés, ils sont stockés sur le serveur. Le PHPSESSID est juste un identifiant, il n'est pas crypté mais généré aléatoirement (c'est donc unique à chaque utilisateur). Les gens piratent les sessions en volant le cookie PHPSESSID, généralement via une attaque de script intersite. Lisez la réponse à ceci pour un bon résumé des sessions en PHP - What do i need to store in the php session when user logged in

0

Les sessions sont stockées sur le serveur. Cela signifie que toutes les données sont stockées dans des fichiers temporaires et sont supprimées après un certain temps. Le navigateur ne stocke pas les données de session. Il stocke un ID de la session, que le serveur utilise pour obtenir le bon fichier temporaire. Ainsi, l'utilisateur n'a jamais accès aux variables stockées dans une session. Mais a une référence à leur session. Il est possible d'obtenir l'identifiant de session de quelqu'un d'autre. De cette façon, vous pouvez prétendre être un autre utilisateur. Si les sessions sont utilisées pour la validation.

Lire sur le détournement de session here.

0

La chose qui peut être modifiée est l'ID de session qui vous est envoyé par le client. Donc, comme avec toutes les données fournies par l'utilisateur, cela doit être «nettoyé» avant de l'utiliser n'importe où, comme par exemple avec mysql_real_escape_string avant de l'insérer dans une base de données MySQL.