Partilhar via


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

Property valor
ID da regra CA5365
Título Não desative a verificação de cabeçalho HTTP
Categoria Segurança
A correção está quebrando ou não quebrando Sem quebra
Habilitado por padrão no .NET 9 Não

Motivo

Defina EnableHeaderChecking como false.

Descrição da regra

A verificação de cabeçalho HTTP permite a codificação do retorno de carro e caracteres de nova linha, \r e \n, que são encontrados em 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. Há um impacto no desempenho da verificação dos cabeçalhos. 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;
    }
}