Dela via


CA5395: Miss HttpVerb-attribut för åtgärdsmetoder

Property Värde
Regel-ID CA5395
Title Miss HttpVerb-attribut för åtgärdsmetoder
Kategori Säkerhet
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 9 Nej

Orsak

Anger inte typen av HTTP-begäran uttryckligen för åtgärdsmetoder.

Regelbeskrivning

Alla åtgärdsmetoder som skapar, redigerar, tar bort eller på annat sätt ändrar data måste skyddas med antiforgery-attributet från förfalskningsattacker mellan webbplatser. Att utföra en GET-åtgärd bör vara en säker åtgärd som inte har några biverkningar och inte ändrar dina bevarade data.

Så här åtgärdar du överträdelser

Markera åtgärdsmetoderna med HttpVerb attribut.

När du ska ignorera varningar

Det är säkert att ignorera varningar från den här regeln om:

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Exempel på pseudokod

Kränkning

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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

Lösning

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

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