CA5396 : Affecter la valeur true à HttpOnly pour HttpCookie
Propriété | Value |
---|---|
Identificateur de la règle | CA5396 |
Titre | Affecter la valeur true à HttpOnly pour HttpCookie |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
System.Web.HttpCookie.HttpOnly est défini sur false
. La valeur par défaut de cette propriété est false
.
Description de la règle
En guise de mesure de défense en profondeur, assurez-vous que les cookies HTTP sensibles pour la sécurité sont marqués comme HttpOnly. Cela indique que les navigateurs web doivent interdire aux scripts d’accéder aux cookies. Les scripts malveillants injectés sont un moyen courant de voler des cookies.
Comment corriger les violations
Définissez System.Web.HttpCookie.HttpOnly sur true
.
Quand supprimer les avertissements
Si la valeur globale de HttpOnly est définie, comme dans l’exemple suivant :
<system.web> ... <httpCookies httpOnlyCookies="true" requireSSL="true" /> </system.web>
Si vous êtes sûr qu’il n’y a pas de données sensibles dans les cookies.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA5396
// The code that's violating the rule is on this line.
#pragma warning restore CA5396
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA5396.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemple
Violation :
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = false;
}
}
Solution :
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = true;
}
}