Partilhar via


CA5365: Não desative a verificação de cabeçalho HTTP

Propriedade valor
ID da regra CA5365
Título Não desative a verificação de cabeçalho HTTP
Categoria Segurança
A correção causa interrupção ou não Ininterrupto
Habilitado por padrão no .NET 10 Não
Línguas aplicáveis C# e Visual Basic

Motivo

Defina EnableHeaderChecking como false.

Descrição da regra

A verificação de cabeçalhos HTTP permite a codificação dos caracteres de retorno de carro e nova linha, \r e \n, que são encontrados nos cabeçalhos de resposta. Essa codificação pode ajudar a evitar ataques de injeção que exploram um aplicativo que ecoa dados não confiáveis contidos no cabeçalho.

Como corrigir violações

Defina EnableHeaderChecking como true. Ou remova a atribuição para false porque o valor padrão é true.

Quando suprimir avisos

As continuações de cabeçalho HTTP dependem de cabeçalhos que abrangem várias linhas e exigem novas linhas neles. Se você precisar usar continuações de cabeçalho, precisará definir a EnableHeaderChecking propriedade como false. Verificar os cabeçalhos tem um impacto no desempenho. Se você tiver certeza de que já está fazendo as verificações certas, desativar esse recurso pode melhorar o desempenho do seu aplicativo. Antes de desativar este recurso, certifique-se de que já está a tomar as precauções certas nesta área.

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 CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365

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

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

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

Exemplos de pseudocódigo

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = false;
    }
}

Solução

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = true;
    }
}