CA5395: Kenmerk Miss HttpVerb voor actiemethoden
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5395 |
Titel | Kenmerk Miss HttpVerb voor actiemethoden |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
Het type HTTP-aanvraag wordt niet expliciet opgegeven voor actiemethoden.
Beschrijving van regel
Alle actiemethoden waarmee gegevens worden gemaakt, bewerkt, verwijderd of anderszins worden gewijzigd, moeten worden beveiligd met het antivervalsingskenmerk van vervalsingsaanvallen op meerdere sites. Het uitvoeren van een GET-bewerking moet een veilige bewerking zijn die geen bijwerkingen heeft en uw persistente gegevens niet wijzigt.
Schendingen oplossen
Markeer de actiemethoden met HttpVerb
kenmerk.
Wanneer waarschuwingen onderdrukken
Het is veilig om waarschuwingen van deze regel te onderdrukken als:
- U weet zeker dat er geen wijzigingsbewerking plaatsvindt in de actiemethode. Of het is helemaal geen actiemethode.
- Andere oplossingen dan het gebruik van antiforgery-tokenkenmerken worden gebruikt om CSRF-beveiligingsproblemen te beperken. Zie Cross-Site Request Forgery-aanvallen (XSRF/CSRF) voorkomen in ASP.NET Core voor meer informatie.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5395
// The code that's violating the rule is on this line.
#pragma warning restore CA5395
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5395.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Voorbeelden van pseudocode
Schending
using Microsoft.AspNetCore.Mvc;
[ValidateAntiForgeryToken]
class BlahController : Controller
{
}
class ExampleController : Controller
{
public IActionResult ExampleAction()
{
return null;
}
}
Oplossing
using Microsoft.AspNetCore.Mvc;
[ValidateAntiForgeryToken]
class BlahController : Controller
{
}
class ExampleController : Controller
{
[HttpGet]
public IActionResult ExampleAction()
{
return null;
}
}