Share via


HttpRuntimeSection.EnableHeaderChecking Propiedad

Definición

Obtiene o establece un valor que indica si la comprobación de encabezados 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 de propiedad

Es true si la comprobación de encabezados está habilitada; en caso contrario, es false. El valor predeterminado es true.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo usar la propiedad EnableHeaderChecking.

// 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

Comentarios

El propósito de esta propiedad es habilitar la codificación del retorno de carro y los caracteres de nueva línea, \r y \n, que se encuentran en los encabezados de respuesta.

En los encabezados de respuesta de salida, los caracteres representados por los códigos 0x1F y siguientes se codifican y también el carácter 0x7F (eliminar carácter). La única excepción es que el carácter 0x09 (el carácter de tabulación) no está modificado.

Esta codificación puede ayudar a evitar ataques de inyección que aprovechan una aplicación que repite datos que no son de confianza contenidos en el encabezado.

Nota

Esta propiedad no se aplica a la propia línea de estado (código de estado y descripción de estado), pero debe aplicarse a otros encabezados. Aunque <httpRuntime> se puede establecer en cualquier nivel, esta propiedad solo es aplicable en el nivel de máquina y aplicación.

Cuando esta propiedad es true, que es el valor predeterminado, los \r caracteres o \n que se encuentran en un encabezado de respuesta se codifican %0d en y %0a. Esto derrota los ataques por inyección de encabezado haciendo que la parte del material insertado de la misma línea de encabezado. Esto podría interrumpir la respuesta, pero no debería abrir vectores de ataque contra el cliente. La repetición de datos que no son de confianza nunca es una buena idea en cualquier situación.

Importante

Las continuaciones de encabezado HTTP se basan en encabezados que abarcan varias líneas y requieren nuevas líneas. Si necesita usar continuaciones de encabezado, debe establecer la propiedad EnableHeaderChecking en false. Dado que hay un impacto en el rendimiento al examinar los encabezados, si está seguro de que ya está realizando las comprobaciones correctas, desactivar esta característica puede mejorar el rendimiento de la aplicación. Antes de deshabilitar esta característica, asegúrese de que ya está tomando las precauciones adecuadas respecto a este tema.

Se aplica a

Consulte también