Udostępnij za pośrednictwem


CA5395: Brak atrybutu HttpVerb w metodach akcji

Właściwości Wartość
Identyfikator reguły CA5395
Tytuł Pomiń atrybut HttpVerb dla metod akcji
Kategoria Bezpieczeństwo
Poprawka łamiąca lub nienaruszająca Niezgodność
Domyślnie włączone na platformie .NET 10 Nie.
Zastosowane języki C# i Visual Basic

Przyczyna

Nie określa typu żądania HTTP jawnie dla metod akcji.

Opis reguły

Wszystkie metody akcji, które tworzą, edytują, usuwają lub w inny sposób modyfikują dane, muszą być chronione za pomocą atrybutu antyfałszerzowego przed atakami fałszerstwa żądań między witrynami. Wykonanie operacji GET powinno być bezpieczną operacją, która nie ma skutków ubocznych i nie modyfikuje utrwalone dane.

Jak naprawić naruszenia

Oznacz metody akcji atrybutem HttpVerb .

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć ostrzeżenia z tej reguły, jeśli:

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.

Przykłady pseudokodu

Naruszenie

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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

Rozwiązanie

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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