Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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 10 | No |
Příčina
System.Web.HttpCookie.HttpOnly je nastavena na falsehodnotu . 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;
}
}