Je pense utiliser ce code sur chaque page pour réduire la possibilité de détournement de la session. En renouvelant la session_id sur chaque demande
if(!empty($_session)){ session_regenerate_id(true); }
5 Réponses :
Les meilleures pratiques sont d'utiliser SSL (et d'appliquer les défenses habituelles contre d'autres vecteurs d'attaque de sécurité tels que l'injection XSS et SQL). Les identifiants de session de cyclisme mendient simplement pour des conditions de course. P>
SSL ne vous protégera pas des biscuits récoltés à travers, disons, XSS.
"Je connais avec SSL, mais je ne veux pas l'acheter de mon webhost
@DMitry - bon marché ou sécurisé, en choisir un.
Eh bien, je développe un forum politique, je vais aller pour l'option bon marché, pourquoi est-ce que je me soucie?
appeler Vous ne devez l'appeler qu'au point de connexion ou à tout moment, vous redirigez un utilisateur. P>
Si vous voulez en outre, vous pouvez stocker la dernière heure régénérée dans une session, puis appeler session_regenèrent_id code> sur chaque page est une surcharge inesselle. p>
session_regenèrent_id code> après 30 minutes, mais il n'y a pas de besoin que cela soit fait pour que cela soit fait sur chaque page. P >
au lieu de générer des identifiants de session, pourquoi ne pas chiffrer et utiliser l'un déjà généré. Vous pouvez être utilisé et détruit lorsque l'action prévue est terminée. P>
Le meilleur cas consiste à régénérer les identiques uniquement. Seulement le point d'entrée (login) uniquement.
comment je fais ça? Comment obtenir l'ID de session .. J'ai une fonction de cryptage qui fonctionne, et je pourrais la déchiffrer. Je ne suis pas préoccupé par la rapidité et la façon de le faire: session_id ($ de la presse); Et puis quand je le déchiffre, comment puis-je enregistrer l'ancien identifiant de session ..? Dans la base de données?
session_start (); session_regenerèrent_id (vrai); $ _Session ['user_session'] = session_id (); $ user_session = $ _ Session ['"user_session']; // Essayez Pass $ user_session for Cryption.vous pouvez l'écho d'abord pour le test
Après utilisation, n'oubliez pas de déséquiper la session non définie (session $ _); vous pourriez également envisager de le détruire si vous n'en avez plus besoin. session_destroy ();
D'accord, je l'ai eu, j'ai besoin de mettre l'identifiant de la session dans la base de données, puis j'ai besoin de chiffrer l'ID de session et de la digue lorsque je souhaite le comparer avec la valeur de la base de données. Est-ce la façon de le faire?
Oui, pouvez-vous faire cela et vous pouvez simplement contenir la session dans les cookies du navigateur telles qu'elles sont. Vérifiez ce site, il pourrait être d'une grande aide Zimuel.it/fr/encypt- PHP-Session-Data
Cependant, j'ai entendu des critiques de cette fonction qui disent que si la page est rafraîchie trop rapidement pour une raison quelconque, l'ID de session devient invalide. P> blockQuote>
Eh bien, je suppose que vous devez l'essayer de confirmer cela, mais je ne pense pas que vous ressentirez jamais ce problème. P>
Quoi qu'il en soit, la régénération de la session de chaque pageload ne vous assure pas complètement de la session du détournement et utilise des ressources mieux dépensées ailleurs. Un meilleur endroit pour commencer serait regarder SSL. Crypter les données entre le client et le serveur Web est plus sécurisé. P>
Je ne régénère personnellement qu'un identifiant de session lorsqu'un utilisateur se connecte et lorsqu'un utilisateur se déconnecte de mes applications. P>
Pourquoi régénérer la session chaque fois que l'utilisateur se connecte à la page Web
J'aime l'idée que chaque fois que mon utilisateur entre dans ou laisse quelque chose que je limite aux autres, ils commencent une nouvelle session. Je n'ai aucun argument technique sur pourquoi.
Ce n'est pas un problème pour moi - je ne peux pas nier que cela puisse arriver, autant de personnes en prévient, mais je n'ai pas eu l'expérimenté (encore).
i avait des problèmes effectivement forts> (à la page Actualiser ou à l'intérieur des demandes d'AJAX), en utilisant mais pas avec donc, selon p>
renouveler l'identifiant de la session après tout changement de niveau de privilège
https://www.owasp.org/index.php/session_managementw_theat_session_id_after_any_privilege_level_change P>
Régénérer SID sur chaque demande
http://en.wikipedia.org/wiki/Session_fixation#Regenerate_SID_on_each_request p>
blockQuote>
J'utilise p>
session_regenèrent_id (true); code> sur chaque demande. P>
session_regenèrent_id (); code> p>
session_regenèrent_id (); code> sur chaque demande li>
session_regenerèrent_id (true); code> sur la connexion, la déconnexion, etc. (tout changement de niveau de privilège) li>
ul>
N'est pas session_regenèrent_id (false) code> litière le serveur avec des fichiers de session?