HttpRuntimeSection.EnableHeaderChecking Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.