Compartir vía


CA5395: Falta el atributo HttpVerb para los métodos de acción

Propiedad Value
Identificador de la regla CA5395
Título Falta el atributo HttpVerb para los métodos de acción
Categoría Seguridad
La corrección interrumpe o no interrumpe Poco problemático
Habilitado de forma predeterminada en .NET 8 No

Causa

No se especifica el tipo de solicitud HTTP explícitamente para los métodos de acción.

Descripción de la regla

Todos los métodos de acción que crean, editan, eliminan o modifican de algún otro modo los datos deben protegerse con el atributo antifalsificación de los ataques de falsificación de solicitudes entre sitios. Realizar una operación GET debería ser una operación segura sin efectos secundarios, que no modifica los datos persistentes.

Cómo corregir infracciones

Marque los métodos de acción con el atributo HttpVerb.

Cuándo suprimir las advertencias

Se pueden suprimir las advertencias de esta regla si:

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 CA5395
// The code that's violating the rule is on this line.
#pragma warning restore CA5395

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.CA5395.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

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    public IActionResult ExampleAction()
    {
        return null;
    }
}

Solución

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    [HttpGet]
    public IActionResult ExampleAction()
    {
        return null;
    }
}