J’ai créé un site Web avec un système de connexion. Après que je sois prêt, je l’ai scanné avec Acunetix, mais j’ai reçu le message suivant:
Cookie de session sans indicateur HttpOnly défini Cookie de session sans indicateur sécurisé défini (je suppose que ce n’est que si j’ai une connexion SSL)
Donc, ma question serait, comment puis-je définir le drapeau HttpOnly pour toutes mes données de session? J’utilise uniquement des sessions lorsque je me connecte aux utilisateurs. Je leur donne une session avec leur numéro d’utilisateur et j’obtiens des données en utilisant cet identifiant.
Existe-t-il un moyen simple de définir TOUTES les sessions HTTPOnly et de les sécuriser afin que personne ne puisse les toucher?
Vous pouvez modifier les parameters dans php.ini ou via les ini_set()
pour modifier les valeurs de session.cookie_secure
et session.cookie_httponly
en true
.
Alternativement, vous pouvez utiliser session_set_cookie_params()
avant de commencer votre session pour obtenir l’effet que vous recherchez.
http://us3.php.net/manual/en/function.session-set-cookie-params.php
Vous devriez consulter cet excellent site pour cette question. Cela revient à le définir dans la section sessions de votre fichier php.ini (ou via la fonction d’exécution appropriée):
session.cookie_httponly = True
Vous pouvez aussi simplement définir le drapeau httponly
sur false
lorsque vous utilisez setcookie
de PHP:
// params: name, value, expiration, path, domain, secure, http-only setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false);