Compartilhar via


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

Property Valor
ID da regra CA5365
Título Não desabilitar a verificação de cabeçalho HTTP
Categoria Segurança
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Não

Causa

Defina EnableHeaderChecking como false.

Descrição da regra

A verificação de cabeçalho HTTP permite a codificação do retorno do carro e dos caracteres de 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 retorna dados não confiáveis contidos no cabeçalho.

Como corrigir violações

Defina EnableHeaderChecking como true. Ou então, remova a atribuição a 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 nelas. Caso precise usar continuações de cabeçalho, defina a propriedade EnableHeaderChecking como false. Há um impacto no desempenho da verificação dos cabeçalhos. Caso você tenha certeza de que já está fazendo as verificações certas, a desativação desse recurso pode aprimorar o desempenho do aplicativo. Antes de desabilitar esse recurso, verifique se você já está tomando as precauções certas nesta área.

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

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.CA5365.severity = none

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