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.HttpOnly på true
.
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;
}
}