CA5363: No deshabilitar la validación de solicitudes
Propiedad | Value |
---|---|
Identificador de la regla | CA5363 |
Título | No deshabilitar la validación de solicitudes |
Categoría | Seguridad |
La corrección interrumpe o no interrumpe | Poco problemático |
Habilitado de forma predeterminada en .NET 8 | No |
Causa
El atributo ValidateInput
se establece en false
para una clase o método.
Descripción de la regla
La validación de solicitudes es una característica de ASP.NET que examina solicitudes HTTP y determina si incluyen contenido potencialmente peligroso que pueda generar ataques de inyección, como el scripting entre sitios.
Cómo corregir infracciones
Establezca el atributo ValidateInput
en true
o elimínelo completamente. También puede usar AllowHTMLAttribute
para permitir HTML en partes específicas de la entrada.
Cuándo suprimir las advertencias
Puede suprimir esta infracción si toda la carga útil de la solicitud HTTP entrante procede de una entidad de confianza y un adversario no podría alterarla durante el transporte o antes.
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 CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
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.CA5363.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.
Ejemplos de pseudocódigo
Infracción
El pseudocódigo de ejemplo siguiente muestra el patrón que detecta esta regla. Esto deshabilita la validación de entradas de usuarios.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Solución
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}