Table of Contents

testing_guide

Résumé

Les cookies sont souvent un vecteur d'attaque clé pour les utilisateurs malveillants (en général lorsqu'ils ciblent d'autres utilisateurs) et, à ce titre, l'application doit toujours prendre toutes les mesures nécessaires pour protéger les cookies. Dans cette section, nous allons examiner comment une application peut prendre les précautions nécessaires lors de l'attribution des cookies, et comment tester que ces attributs ont été correctement configurés.

Description

L'importance de l'utilisation sécurisée des cookies ne peut pas être sous-estimée, en particulier au sein des applications web dynamiques, qui ont besoin de maintenir l'état de la session à travers un protocole stateless tels que HTTP. Pour comprendre l'importance de cookies, il est impératif de comprendre pour qu 'elles fonctions ils sont principalement utilisés. Les fonctions de base sont généralement d'être utilisée pour maintenir une session suite à l'autorisation / authentification par jeton ou comme un conteneur de données temporaires. Ainsi, si un attaquant par un moyen quelconque est capable d'acquérir un jeton de session (par exemple, en exploitant une vulnérabilité de script intersite ou en reniflant une session non chiffrée), alors il / elle peut utiliser des cookies afin de détourner une session valide. En outre, les cookies permettent de maintenir l'état entre plusieurs demandes. Comme HTTP est apatride, le serveur ne peut pas déterminer si une demande qu'il reçoit est partie d'une session en cours ou c'est le début d'une nouvelle session sans un certain type d'identifiant. Cet identifiant est très souvent un cookie, bien que d'autres méthodes sont également possibles. Comme vous pouvez l'imaginer, il y a de nombreux différents types d'applications qui ont besoin de garder une trace de l'état de session entre plusieurs demandes. Le premier qui vient à l'esprit serait une boutique en ligne. Comme un utilisateur ajoute plusieurs éléments à un panier d'achat, ces données doivent être conservées dans des demandes ultérieures de la demande. Les cookies sont très couramment utilisées pour cette tâche et sont définies par l'application en utilisant la directive Set-Cookie dans la réponse HTTP de l'application, et est généralement dans un format nom = valeur (si les cookies sont activés et si ils sont pris en charge, ce qui est le cas pour tous les navigateurs modernes). Une fois qu'une demande a dit au navigateur d' utiliser un cookie particulier, le navigateur envoie le cookie à chaque demande ultérieure. Un cookie peut contenir des données telles que les articles à partir d'un panier d'achat en ligne, le prix de ces articles, la quantité de ces articles, le informations personnelles, les noms d'utilisateur, etc En raison de la nature sensible des informations contenues dans les cookies, ils sont généralement encodées ou cryptées dans le but de protéger les informations qu'ils contiennent. Souvent, plusieurs cookies seront transmis (séparés par un point-virgule) lors de demandes ultérieures. Par exemple, dans le cas d'une boutique en ligne, un nouveau cookie peut être généré lorsque vous ajoutez plusieurs éléments à votre panier. En outre, vous avez généralement un cookie pour l'authentification (jeton de session comme indiqué ci-dessus) une fois que vous vous connectez, et plusieurs autres cookies utilisés afin d'identifier les articles que vous souhaitez acheter et leurs informations auxiliaires (c.-à-prix et la quantité) .

Maintenant que vous avez une compréhension de la façon dont les cookies sont définis, quand ils le sont, pour quels objectifs ils sont utilisés, pourquoi ils sont utilisés, et leur importance, nous allons jeter un oeil sur les attributs qui peuvent être définis pour un cookie et comment tester si ces attributs sont bien sécurisés. Ce qui suit est une liste des attributs qui peuvent être définis pour chaque cookie et ce qu'elles sont leur signification. La section suivante se concentrera sur la façon de tester pour chaque attribut.

Test boîte noire

En utilisant un proxy ou un plug-in permettant d'intercepter le trafic, piéger toutes les réponses où un cookie est installé par l'application (en utilisant la directive Set-cookie) et inspecter dans le cookie ce qui suit:

Références

Livres blancs

Outils