[IIS] Cookies Secure HttpOnly
Flag : HttpOnly
Le premier flag que nous devons configurer est le HttpOnly . Par défaut, lorsqu'aucune restriction n'est en place, les cookies peuvent être transférés non seulement par HTTP, mais tous les fichiers JavaScript chargés sur une page peuvent également accéder aux cookies. Cette capacité peut être dangereuse car elle rend la page vulnérable aux attaques de script intersite (XSS).
La seule façon de limiter cela est de définir l'indicateur HttpOnly, ce qui signifie que la seule façon d'envoyer les cookies est via une connexion HTTP, et non directement par d'autres moyens (c'est-à-dire JavaScript).
Flag : Secure
Le deuxième drapeau auquel nous devons prêter attention est le drapeau sécurisé . Cet indicateur met en évidence le deuxième problème selon lequel, par défaut, les cookies sont toujours envoyés sur les requêtes HTTP et HTTPS. Un attaquant malveillant qui ne peut pas voir le trafic chiffré avec une connexion HTTPS peut facilement basculer vers une connexion HTTP et accéder au même cookie car il n'est pas chiffré. Par conséquent, nous devons définir l' indicateur Secure pour nous assurer que le cookie est crypté lors de sa création.
Changez l'attribut par défaut 'Secure' de FALSE à TRUE pour vous assurer que les cookies sont envoyés uniquement via HTTPS. L'attribut "Sécurisé" doit être défini sur chaque cookie pour empêcher les cookies d'être observés par des acteurs malveillants. Implémentez l'attribut 'Secure' lors de l'utilisation du paramètre Set-Cookie lors de sessions authentifiées.
dans le web.config
Flag : HttpOnly
<
system.web
>
<
httpCookies
httpOnlyCookies
=
"true"
requireSSL
=
"true"
/>
</
system.web
>
Flag : Secure
<
system.webServer
>
<
rewrite
>
<
outboundRules
>
<
rule
name
=
"Use only secure cookies"
preCondition
=
"Unsecured cookie"
>
<
match
serverVariable
=
"RESPONSE_SET_COOKIE"
pattern
=
".*"
negate
=
"false"
/>
<
action
type
=
"Rewrite"
value
=
"{R:0}; secure"
/>
</
rule
>
<
preConditions
>
<
preCondition
name
=
"Unsecured cookie"
>
<
add
input
=
"{RESPONSE_SET_COOKIE}"
pattern
=
"."
/>
<
add
input
=
"{RESPONSE_SET_COOKIE}"
pattern
=
"; secure"
negate
=
"true"
/>
</
preCondition
>
</
preConditions
>
</
outboundRules
>
</
rewrite
>
</
system.webServer
>