Compartilhar via


HttpRuntimeSection.EnableHeaderChecking Propriedade

Definição

Obtém ou define um valor que indica se a verificação de cabeçalho está habilitada.

public:
 property bool EnableHeaderChecking { bool get(); void set(bool value); };
[System.Configuration.ConfigurationProperty("enableHeaderChecking", DefaultValue=true)]
public bool EnableHeaderChecking { get; set; }
[<System.Configuration.ConfigurationProperty("enableHeaderChecking", DefaultValue=true)>]
member this.EnableHeaderChecking : bool with get, set
Public Property EnableHeaderChecking As Boolean

Valor da propriedade

true se a verificação de cabeçalho estiver habilitada; caso contrário, false. O valor padrão é true.

Atributos

Exemplos

O exemplo a seguir mostra como usar a EnableHeaderChecking propriedade .

// Get the EnableHeaderChecking property value.
Response.Write("EnableHeaderChecking: " +
  configSection.EnableHeaderChecking + "<br>");

// Set the EnableHeaderChecking property value to true.
configSection.EnableHeaderChecking = true;
' Get the EnableHeaderChecking property value.
Response.Write("EnableHeaderChecking: " & _
  configSection.EnableHeaderChecking & "<br>")

' Set the EnableHeaderChecking property value to true.
configSection.EnableHeaderChecking = True

Comentários

A finalidade dessa propriedade é habilitar a codificação do retorno de carro e dos caracteres de nova linha, \r e \n, que são encontrados nos cabeçalhos de resposta.

Em cabeçalhos de resposta de saída, os caracteres representados pelos códigos 0x1F e abaixo são codificados e também o caractere 0x7F (caractere de exclusão). A única exceção é que o caractere 0x09 (o caractere de tabulação) não é modificado.

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.

Observação

Essa propriedade não se aplica à própria linha de status (código de status e descrição de status), mas deve ser aplicada a outros cabeçalhos. Embora <httpRuntime> possa ser definido em qualquer nível, essa propriedade só é aplicável no nível do computador e do aplicativo.

Quando essa propriedade é true, que é o padrão, os \r caracteres ou \n encontrados em um cabeçalho de resposta são codificados para %0d e %0a. Isso derrota os ataques de injeção de cabeçalho tornando o material injetado parte da mesma linha de cabeçalho. Isso pode interromper a resposta, mas não deve abrir vetores de ataque contra o cliente. No entanto, ecoar dados não confiáveis nunca é uma boa ideia em qualquer situação.

Importante

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. Como há um impacto no desempenho ao examinar cabeçalhos, se você tiver certeza de que já está fazendo as verificações corretas, desativar esse recurso pode melhorar o desempenho do aplicativo. Antes de desabilitar esse recurso, verifique se você já está tomando as precauções certas nesta área.

Aplica-se a

Confira também