Compartilhar via


CA5395: Falta o atributo HttpVerb para métodos de ação

Propriedade Valor
ID da regra CA5395
Título Falta do atributo HttpVerb para métodos de ação
Categoria Segurança
Correção interruptiva ou sem interrupção Inquebrável
Habilitado por padrão no .NET 10 Não
Idiomas aplicáveis C# e Visual Basic

Causa

Não especificar o tipo de solicitação HTTP explicitamente para métodos de ação.

Descrição da regra

Todos os métodos de ação que criam, editam, excluem ou modificam dados precisam ser protegidos com o atributo antifalsificação contra ataques de falsificação de solicitação entre sites. A execução de uma operação GET deve ser segura, não tem efeitos colaterais e não modifica os dados persistentes.

Como corrigir violações

Marque os métodos de ação com o atributo HttpVerb.

Quando suprimir avisos

É seguro suprimir avisos dessa regra se:

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

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

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

Para obter mais informações, confira Como suprimir avisos de análise de código.

Exemplos de pseudocódigo

Violação

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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

Solução

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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