CA5396: Stel HttpOnly in op true voor HttpCookie

Eigenschap Waarde
Regel-id CA5396
Titel Stel HttpOnly in op true voor HttpCookie
Categorie Beveiliging
Fix kan brekend of niet-brekend zijn Niet-brekend
Standaard ingeschakeld in .NET 10 Nee
Toepasselijke talen C# en Visual Basic

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.

Hoe schendingen op te lossen

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 voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.

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