Share via


CA5365: No deshabilitar la comprobación de encabezados HTTP

Propiedad Value
Identificador de la regla CA5365
Título No deshabilitar la comprobación de encabezados HTTP
Categoría Seguridad
La corrección interrumpe o no interrumpe Poco problemático
Habilitado de forma predeterminada en .NET 8 No

Causa

Establezca EnableHeaderChecking en false.

Descripción de la regla

La comprobación de encabezados HTTP permite codificar el retorno de carro y los caracteres de nueva línea, \r y \n, que se encuentran en los encabezados de respuesta. 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.

Cómo corregir infracciones

Establezca EnableHeaderChecking en true. O bien, quite la asignación a false porque el valor predeterminado es true.

Cuándo suprimir las advertencias

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. La comprobación de los encabezados tiene un impacto en el rendimiento. Está seguro de que ya realiza las comprobaciones correctas, la desactivación de 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.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

#pragma warning disable CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none del archivo de configuración.

[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.

Ejemplos de pseudocódigo

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = false;
    }
}

Solución

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = true;
    }
}