Dela via


CA5396: Ange HttpOnly till true för HttpCookie

Property Värde
Regel-ID CA5396
Title Ange HttpOnly till true för HttpCookie
Kategori Säkerhet
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 9 Nej

Orsak

System.Web.HttpCookie.HttpOnly är inställt på false. Standardvärdet för den här egenskapen är false.

Regelbeskrivning

Som ett djupskyddsmått kontrollerar du att säkerhetskänsliga HTTP-cookies är markerade som HttpOnly. Detta indikerar att webbläsare inte bör tillåta skript från att komma åt cookies. Inmatade skadliga skript är ett vanligt sätt att stjäla cookies.

Så här åtgärdar du överträdelser

Ställ in System.Web.HttpCookie.HttpOnlytrue.

När du ska ignorera varningar

  • Om det globala värdet HttpOnly för anges, till exempel i följande exempel:

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • Om du är säker på att det inte finns några känsliga data i cookies.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA5396
// The code that's violating the rule is on this line.
#pragma warning restore CA5396

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA5396.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

Exempel

Kränkning:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = false;
    }
}

Lösning:

using System.Web;

class ExampleClass
{
    public void ExampleMethod()
    {
        HttpCookie httpCookie = new HttpCookie("cookieName");
        httpCookie.HttpOnly = true;
    }
}