CA5396: Nastavte httpOnly na true pro HttpCookie
Vlastnost | Hodnota |
---|---|
ID pravidla | CA5396 |
Název | Nastavit HttpOnly na hodnotu true pro HttpCookie |
Kategorie | Zabezpečení |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 8 | No |
Příčina
System.Web.HttpCookie.HttpOnly je nastavena na false
hodnotu . Výchozí hodnota této vlastnosti je false
.
Popis pravidla
Jako hloubková ochrana se ujistěte, že jsou soubory cookie HTTP citlivé na zabezpečení označené jako HttpOnly. To znamená, že webové prohlížeče by měly zakázat skripty v přístupu k souborům cookie. Injektované škodlivé skripty představují běžný způsob krádeže souborů cookie.
Jak opravit porušení
Nastavte System.Web.HttpCookie.HttpOnly na hodnotu true
.
Kdy potlačit upozornění
Pokud je nastavena globální hodnota HttpOnly , například v následujícím příkladu:
<system.web> ... <httpCookies httpOnlyCookies="true" requireSSL="true" /> </system.web>
Pokud jste si jistí, že v souborech cookie nejsou žádná citlivá data.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA5396
// The code that's violating the rule is on this line.
#pragma warning restore CA5396
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA5396.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Příklad
Porušení:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = false;
}
}
Řešení:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = true;
}
}