web-dev-qa-db-fra.com

Quels sont les problèmes des cookies httponly et secure?

Nous aimerions définir:

  1. tous nos cookies (identifiant de session, etc.) comme "httponly"
  2. tous les cookies de sécurité (jeton de session, "se souvenir de moi", etc.) comme "sécurisés"

Sauf problèmes de compatibilité , quels sont les problèmes connus pour utiliser des cookies sécurisés et de type httponly?

Est-ce que Google bot les supporte/les aime? Existe-t-il des problèmes de blocage/bugs avec certains navigateurs?

J'ai vu des sites Web bien connus n'utilisant pas "httponly" et "secure" pour les cookies importants. Négligence? Raison technique?

Note 1: la question n'est pas liée à la sécurité. Nous savons pourquoi nous devons définir "httponly" et/ou "secure". Mais comme certains sites Web bien connus n'utilisant pas https ne définissent pas ces 2 attributs sur des cookies sensibles, nous essayions de comprendre quelle raison est plus importante que la sécurité (compatibilité, bug, SEO, etc.).

1
Toto

Cela dépend vraiment des données que vous stockez. Si votre site n'utilise pas de certificat SSL, c'est facile. Tout irait dans httpOnly cookies ou variables de session. Vous décidez cela en fonction de la sensibilité des données que vous stockez. S'il stocke le choix de couleur d'arrière-plan de l'utilisateur, httpOnly convient toujours. Si vous stockez quelque chose de potentiellement dangereux entre de mauvaises mains, vous souhaitez utiliser une session. L'identifiant de session lui-même n'a pas besoin d'être crypté.

Le problème avec les cookies sécurisés est qu'ils peuvent être craqués avec suffisamment de temps. Pour cette raison, ils ne sont jamais considérés comme bons pour la haute sécurité. Cela étant dit, ils offrent une sorte de sécurité moyenne qui, utilisée correctement, peut économiser les ressources de votre serveur. Si vous avez un serveur assez puissant, je vous conseillerais de vous en tenir aux variables de session. Mais dans la bonne situation, un cookie sécurisé est utile. Si votre application a besoin de beaucoup de données côté client (d'un serveur ajax DB par exemple), il peut être judicieux de stocker ces données dans un cookie sécurisé expirant à la fin de la session.

Une bonne règle est que, si la page doit utiliser SSL, les cookies le devraient également. Les cookies ne sont pas moins sécurisés que la page. Cela vaut pour les cookies httpOnly et sécurisés. En outre, les cookies sécurisés représentent un risque accru pour la sécurité uniquement lorsqu'ils n'expirent pas, car ils prennent plus de temps à un pirate informatique potentiel.

MISE À JOUR: La négligence semble probable, mais cela pourrait aussi être simplement dû au fait que le serveur est surchargé et qu'il serait trop coûteux de faire fonctionner SSL pour tout cela. Cela semble toutefois peu probable, car les processeurs modernes ont considérablement accéléré le cryptage SSL. Je pense qu'il y a une limite en ce que si l'utilisateur accède à votre site en utilisant http, les cookies sécurisés ne seront pas visibles (ou du moins ne fonctionneront pas toujours dans tous les navigateurs). J'ai eu des problèmes avec cela dans le passé mais autres semblent penser que cela fonctionne bien. Personnellement, j'utilise SSL sur presque tous les sites que je dirige et où quelqu'un doit se connecter; Juste pour être sûr. Ce n'est probablement pas la chose la plus verte à faire, mais ça me permet de mieux dormir. Je dirais que tant que vous pouvez le faire, vous devez utiliser SSL et les cookies sécurisés et toujours utiliser httpOnly sauf si vous ne le pouvez pas.

Et comme une autre affiche l'a déjà mentionné, les robots de recherche ignorent généralement les cookies. Vous pouvez vérifier GOOGLEBOT dans l'en-tête de la demande pour afficher le contenu dans Google comme si celui-ci était connecté (mais cela empêche de cacher du contenu jusqu'à ce que quelqu'un se connecte).

1
krowe

L'ajout de l'indicateur httpOnly lors de la création d'un cookie ne pose pas vraiment de problème. Cela ne fonctionne que si un navigateur supporte le drapeau.

Vous trouverez une liste des navigateurs qui le prennent en charge à l’adresse suivante: https://www.owasp.org/index.php/HTTPOnly#Browsers_Supporting_HttpOnly

Googlebot n'a rien à voir avec les cookies

Ce n'est pas de la négligence si un site n'utilise pas de cookie sécurisé, du moins la plupart du temps. Il existe de nombreuses raisons pour lesquelles un cookie serait utilisé au cours d'une session et/ou une session utilisée plutôt qu'un cookie.

0
Anagio

L’indicateur httponly indique simplement qu’un navigateur ne doit pas autoriser la modification du cookie avec javascript. Ce n’est qu’un navigateur et il n’existe aucune raison valable pour laquelle un moteur de recherche doit traiter ces pages différemment. Utilisez cet indicateur chaque fois que vous n’avez pas besoin d’accéder au cookie par javascript (probablement dans la plupart des cas). Ne pas l'utiliser, c'est juste de la paresse à mon avis.

Le drapeau Secure n'a de sens que sur les sites HTTPS bien sûr. Les sites non-HTTPS bien connus que vous avez mentionnés ne peuvent pas utiliser cet indicateur, car le navigateur ne renverrait pas le cookie. Encore une fois, il s’agit d’un navigateur. Un moteur de recherche peut facilement renvoyer ce cookie sécurisé via HTTPS, bien que le contenu nécessitant une session sécurisée ne soit normalement pas ce que vous recherchez dans un moteur de recherche. La question est donc de savoir si le contenu de la page dépend du cookie sécurisé ou non.

0
martinstoeckli