Condividi tramite


CA5396: Impostare HttpOnly su true per HttpCookie

Proprietà valore
ID regola CA5396
Titolo Impostare HttpOnly su true per HttpCookie
Categoria Sicurezza
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 No

Causa

System.Web.HttpCookie.HttpOnly è impostato su false. Il valore predefinito di questa proprietà è false.

Descrizione regola

Come misura avanzata di difesa, assicurarsi che i cookie HTTP sensibili alla sicurezza siano contrassegnati come HttpOnly. Ciò indica che i Web browser non devono consentire agli script di accedere ai cookie. Gli script dannosi inseriti sono un modo comune per rubare i cookie.

Come correggere le violazioni

Impostare System.Web.HttpCookie.HttpOnly su true.

Quando eliminare gli avvisi

  • Se il valore globale di HttpOnly è impostato, ad esempio nell'esempio seguente:

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • Se si è certi che non sono presenti dati sensibili nei cookie.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Esempio

Violazione:

using System.Web;

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

Soluzione:

using System.Web;

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