Cookie de session sans drapeau HttpOnly

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);