Partilhar via


CA5396: Definir HttpOnly como true para HttpCookie

Propriedade valor
ID da regra CA5396
Cargo Definir HttpOnly como true para HttpCookie
Categoria Segurança
A correção está quebrando ou não quebrando Sem quebra
Habilitado por padrão no .NET 8 Não

Causa

System.Web.HttpCookie.HttpOnly está definido como false. O valor padrão dessa propriedade é false.

Descrição da regra

Como medida de defesa em profundidade, certifique-se de que os cookies HTTP sensíveis à segurança sejam marcados como HttpOnly. Isso indica que os navegadores da Web devem impedir que scripts acessem os cookies. Os scripts maliciosos injetados são uma forma comum de roubar cookies.

Como corrigir violações

Defina System.Web.HttpCookie.HttpOnly como true.

Quando suprimir avisos

  • Se o valor global de HttpOnly for definido, como no exemplo a seguir:

    <system.web>
        ...
        <httpCookies httpOnlyCookies="true" requireSSL="true" />
    </system.web>
    
  • Se tiver certeza de que não há dados confidenciais nos cookies.

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.

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

Para desabilitar a regra para um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração.

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Exemplo

Violação:

using System.Web;

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

Solução:

using System.Web;

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