97 votes

Comment configurer l'utilisation des cookies HttpOnly en PHP

Comment définir les cookies dans mes applications PHP en tant que cookies HttpOnly?

126voto

euhiemf Points 776

Pour les cookies de session propres à PHP sur Apache:
ajoutez ceci à votre configuration Apache ou .htaccess

 <IfModule php5_module>
    php_value session.cookie_httponly true
</IfModule>
 

Cela peut également être défini dans un script, tant qu'il est appelé avant session_start() .

 ini_set( 'session.cookie_httponly', 1 );
 

98voto

Cheekysoft Points 16532
  • Pour vos cookies, voir cette réponse.
  • Pour PHP propre cookie de session (PHPSESSID, par défaut), voir @euhiemf réponse

L' setcookie() et setrawcookie() fonctions, introduit l' httponly de paramètre, de retour dans les âges sombres de l'PHP 5.2.0, faisant de cette agréable et facile. Il suffit de régler la 7e paramètre à true, selon la syntaxe

Syntaxe de la fonction simplifiée pour des raisons de concision

setcookie(    $name, $value, $expire, $path, $domain, $secure, $httponly )
setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )

Entrez NULL pour les paramètres que vous souhaitez rester en tant que par défaut. Vous pouvez également envisager si vous devriez être le réglage de l' secure paramètre.

Il est également possible en utilisant l'ancienne, de niveau inférieur header() fonction de:

header( "Set-Cookie: name=value; httpOnly" );

13voto

tqbf Points 6629

Sachez que HttpOnly n'arrête pas le script intersite; au lieu de cela, il neutralise une attaque possible et ne le fait actuellement que sur IE (FireFox expose les cookies HttpOnly dans XmlHttpRequest, et Safari ne l’honore pas du tout). Bien sûr, activez HttpOnly, mais ne laissez pas tomber même une heure de filtrage de sortie et de test fuzz dans le commerce pour cela.

5voto

Polsonby Points 11824

Explication ici d'Ilia ... 5.2 seulement si

Prise en charge de l'indicateur de cookie httpOnly dans PHP 5.2

Comme indiqué dans cet article, vous pouvez définir vous-même l'en-tête dans les versions précédentes de PHP

 header("Set-Cookie: hidden=value; httpOnly");
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X