Permet de considérer la confiance que le serveur a avec l'utilisateur. P>
Fixation de session: pour éviter la fixation que j'utilise Session SIMLACING: Cryptage SSL pour l'ensemble du site. P>
suis-je en sécurité? P> session_regenèrent_id () code> uniquement dans l'authentification (login.php) p>
3 Réponses :
lire owasp A3-Authentification brisée et gestion de la session . A également lu sur Owasp A5-CSRF , qui est parfois appelé "session équitation".
Vous devez utiliser ce code dans un fichier d'en-tête PHP: p> Ce code empêche fixation de la session . Il aide également à protéger contre les XSS de l'accès document.cookie code> qui est une solution à une manière que Le détournement de la session peut se produire. Appliquer les cookies HTTPS uniquement est un bon moyen de traiter Owasp Protection de la couche de transport insuffisante A9 a>. Cette façon d'utiliser HTTPS est parfois appelée "cookies sécurisés", qui est un nom terrible pour cela. Aussi STS est une fonction de sécurité très cool, mais Tous les navigateurs ne le soutiennent pas (encore). P> p>
Votre réponse mérite au moins un +10 et avec mon vote, vous l'avez eu. Couple de questions Juste pour m'assurer que j'ai compris: 1) Cookie_secure CODE> Est-ce que je voudrais me faire travailler toujours sur https quand en session, n'est-ce pas ?! 2) Qu'est-ce que
cookie_httponly code> fait? J'ai lu une explication PHP, mais je ne reçois pas quand il est indiqué que cela empêche la lecture des cookies de lecture JS, des cookies devraient être lues par JS dans de nombreuses circonstances. Merci et fyi: Depuis PHP 5.3.0
session.Utilise_only_cookies code> est 1 par défaut it.php.net/manual/fr/...
Je suggérerais également de stocker l'agent utilisateur et les informations IP de la session et la vérifiant sur chaque demande. Ce n'est pas une balle, mais c'est une augmentation assez importante de la robustesse. Alors que l'UA forgeant est vraiment facile, IP forgeant, tout en étant possible, c'est beaucoup plus difficile ... mais vous pouvez avoir des problèmes avec des utilisateurs qui sont derrière un système IP rond-robin tel que les utilisateurs AOL ... P>
"Forgeage IP" ou plus communément appelé spoofing IP, est impossible pour une connexion TCP sur Internet en raison de la poignée de main à trois sens. Toutefois, une adresse IP de l'utilisateur légitime peut changer pendant une session en raison des équilibreurs de chargement sur un réseau d'entreprise ou de la modification de points chauds WiFi.
C'est tout à fait possible. Cela nécessite juste une attaque de style mitm (où l'attaquant a accès à l'un des routeurs de bout en bout, puis peut faire ce qu'ils souhaitent) ...
Ce n'est pas "forger" si vous pouvez accéder aux paquets acheminés vers cette adresse IP.
La meilleure pratique que j'ai jamais trouvée est d'enregistrer les données de session à la base de données ou à un fichier texte. La base de données aura un agent utilisateur et un enregistrement IP et vérifie toutes les demandes de garantie de veiller à ce que la session n'a jamais été détournée par d'autres. P>
Par exemple, comment la session enregistrée dans la base de données vous pouvez voir la mise en œuvre de la bibliothèque de session CodeIntier. À mon avis, cette façon d'économiser équitablement pour empêcher quelqu'un de hijact session. p>
Vérification de l'agent utilisateur n'a pas de sens parce qu'il s'agit d'une variable contrôlée par attaquant. Stockage de l'ID de session dans la base de données signifie que l'injection SQL donne à l'attaquant un accès immédiat au système, de sorte qu'il n'aura donc pas besoin de casser un hachage de mot de passe pour se connecter. Vérification de l'adresse IP est exposée aux erreurs, car cela peut changer sur un système légitime, par exemple s'il est derrière une balanceur de charge sur un réseau d'entreprise.
@Rook - Vous supposez que la base de données est vulnérable à l'injection SQL. Utilisation correcte des déclarations préparées ou des procédures stockées, ainsi que l'assainissement approprié des paramètres, ne permettront pas l'injection SQL.
@Agmlauncher Il s'agit de l'équivalent de stocker un mot de passe en plainte dans la base de données. Il faut planifier l'échec.
Ok Rook, que diriez-vous de vous fournir une solution réelle au lieu de simplement dire ce qui ne va pas avec toutes les autres (éprouvées)? Je pense juste qu'il est hilarant que vous pensez que la gestion de la session dans une base de données est une mauvaise idée.
Quel genre de site est-ce?
@Mrxexxed a site où les développeurs ne veulent pas que ce soit piraté.
@Le Rook, je parlais à l'OP, c'était une véritable question, votre commentaire est à la fois facétieux et entièrement inutile.
@Delete moi pourquoi est-ce important? Les gens ont besoin de protéger leurs utilisateurs des attaques comme le détournement de la session. C'est triste que la plupart des développeurs ne soient pas fidèles ou ne savent pas arrêter de telles attaques.
Dupliqué possible de Sécurité de session PHP , Quel est le meilleur moyen d'empêcher le détournement de la session?