HttpRuntimeSection.EnableHeaderChecking Propriedade

Definição

Recebe ou define um valor que indica se a verificação do cabeçalho está ativada.

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 de Propriedade

true se a verificação do cabeçalho estiver ativada; caso contrário, false. O valor predefinido é true.

Atributos

Exemplos

O exemplo seguinte mostra como utilizar 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

Observações

O objetivo desta propriedade é permitir a codificação dos caracteres de retorno de carro e de nova linha, \r e \n, que se encontram nos cabeçalhos de resposta.

Nos cabeçalhos de resposta de saída, os caracteres representados pelos códigos 0x1F e abaixo são codificados, assim como o carácter 0x7F (carácter eliminar). A única exceção é que o carácter 0x09 (o carácter de tabulação) não está modificado.

Essa codificação pode ajudar a evitar ataques de injeção que exploram um aplicativo que ecoa dados não confiáveis contidos pelo cabeçalho.

Note

Esta propriedade não se aplica à linha de estado em si (código de estado e descrição de estado), mas deve aplicar-se a outros cabeçalhos. Embora <o httpRuntime> possa ser definido a qualquer nível, esta propriedade só é aplicável ao nível da máquina e da aplicação.

Quando esta propriedade é true, que é o padrão, os \r caracteres ou \n encontrados num cabeçalho de resposta são codificados para %0d e %0a. Isto derrota ataques de injeção de cabeçalho ao tornar o material injetado parte da mesma linha de cabeçalho. Isto pode quebrar a resposta, mas não deve abrir vetores de ataque contra o cliente. No entanto, devolver dados não confiáveis nunca é uma boa ideia em nenhuma situação.

Importante

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. Como há um impacto de desempenho ao olhar para cabeçalhos, se tiver a certeza de que já está a fazer as verificações corretas, desligar esta funcionalidade pode melhorar o desempenho da sua aplicação. Antes de desativar este recurso, certifique-se de que já está a tomar as precauções certas nesta área.

Aplica-se a

Ver também