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 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;
    }
}