CA5396: Ustaw wartość HttpOnly na wartość true dla elementu HttpCookie
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA5396 |
Tytuł | Ustaw element HttpOnly na wartość true dla elementu HttpCookie |
Kategoria | Bezpieczeństwo |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
System.Web.HttpCookie.HttpOnly jest ustawiona na false
wartość . Wartość domyślna tej właściwości to false
.
Opis reguły
W ramach ochrony w głębi systemu upewnij się, że poufne pliki cookie HTTP są oznaczone jako HttpOnly. Oznacza to, że przeglądarki internetowe nie powinny zezwalać skryptom na dostęp do plików cookie. Wstrzyknięte złośliwe skrypty są typowym sposobem kradzieży plików cookie.
Jak naprawić naruszenia
Ustaw wartość opcji System.Web.HttpCookie.HttpOnly na true
.
Kiedy pomijać ostrzeżenia
Jeśli ustawiono wartość HttpOnly globalną elementu , na przykład w poniższym przykładzie:
<system.web> ... <httpCookies httpOnlyCookies="true" requireSSL="true" /> </system.web>
Jeśli masz pewność, że w plikach cookie nie ma żadnych poufnych danych.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA5396
// The code that's violating the rule is on this line.
#pragma warning restore CA5396
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA5396.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.
Przykład
Naruszenie:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = false;
}
}
Rozwiązanie:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = true;
}
}