Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | valore |
|---|---|
| ID regola | CA5396 |
| Title | Impostare HttpOnly su true per HttpCookie |
| Categoria | Sicurezza |
| La correzione causa un'interruzione o meno | Non causa un'interruzione |
| Abilitato per impostazione predefinita in .NET 10 | 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;
}
}