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;
}
}