Share via


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 8 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.

Voorbeeld

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