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