Compartilhar via


CA5396: Definir HttpOnly como true para HttpCookie

Property Valor
ID da regra CA5396
Título Definir HttpOnly como true para HttpCookie
Categoria Segurança
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Não

Causa

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

Descrição da regra

Como uma medida de defesa em profundidade, verifique se cookies HTTP sensíveis à segurança estão marcados como HttpOnly. Isso indica que os navegadores da Web não devem permitir que scripts acessem os cookies. Scripts mal-intencionados injetados são uma maneira comum de roubar cookies.

Como corrigir violações

Defina System.Web.HttpCookie.HttpOnly como true.

Quando suprimir avisos

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

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

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar 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 em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

Para obter mais informações, confira 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;
    }
}