CA5396: HttpOnly instellen op waar voor HttpCookie
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5396 |
Titel | HttpOnly instellen op waar voor HttpCookie |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
System.Web.HttpCookie.HttpOnly is ingesteld op false
. De standaardwaarde van deze eigenschap is false
.
Beschrijving van regel
Als diepgaande verdedigingsmaatregel zorgt u ervoor dat beveiligingsgevoelige HTTP-cookies worden gemarkeerd als HttpOnly. Dit geeft aan dat webbrowsers scripts niet mogen toestaan om toegang te krijgen tot de cookies. Geïnjecteerde schadelijke scripts zijn een veelgebruikte manier om cookies te stelen.
Schendingen oplossen
Stel System.Web.HttpCookie.HttpOnly in op true
.
Wanneer waarschuwingen onderdrukken
Als de globale waarde HttpOnly is ingesteld, zoals in het volgende voorbeeld:
<system.web> ... <httpCookies httpOnlyCookies="true" requireSSL="true" /> </system.web>
Als u zeker weet dat er geen gevoelige gegevens in de cookies staan.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5396
// The code that's violating the rule is on this line.
#pragma warning restore CA5396
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5396.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Opmerking
Schending:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = false;
}
}
Oplossing:
using System.Web;
class ExampleClass
{
public void ExampleMethod()
{
HttpCookie httpCookie = new HttpCookie("cookieName");
httpCookie.HttpOnly = true;
}
}