Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eigenschaft | Wert |
---|---|
Regel-ID | CA5395 |
Titel | Fehlendes HttpVerb-Attribut für Aktionsmethoden. |
Kategorie | Security |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 9 aktiviert | No |
Ursache
Die Art der HTTP-Anforderung wird nicht explizit für Aktionsmethoden angegeben.
Regelbeschreibung
Alle Aktionsmethoden, die Daten erstellen, bearbeiten, löschen oder anderweitig ändern, müssen mit dem antiforgery-Attribut vor Angriffen durch siteübergreifende Anforderungsfälschung geschützt werden. Die Durchführung eines GET-Vorgangs sollte eine sichere Operation sein, die keine Nebenwirkungen hat und Ihre permanenten Daten nicht ändert.
Behandeln von Verstößen
Markieren Sie die Aktionsmethoden mit dem HttpVerb
-Attribut.
Wann sollten Warnungen unterdrückt werden?
Warnungen aus dieser Regel können sicher unterdrückt werden, wenn Folgendes gilt:
- Sie sind sicher, dass in der Aktionsmethode kein ändernder Vorgang stattfindet. Oder es handelt sich nicht um eine Aktionsmethode.
- Um CSRF-Sicherheitsrisiken zu entschärfen, werden Lösungen außer Antifälschungstokenattribute verwendet. Weitere Informationen finden Sie unter Prevent Cross-Site Request Forgery (XSRF/CSRF) Attacks in ASP.NET Core (Verhindern von websiteübergreifenden Anforderungsfälschungen (XSRF/CSRF) in ASP.NET Core).
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA5395
// The code that's violating the rule is on this line.
#pragma warning restore CA5395
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der none
auf fest.
[*.{cs,vb}]
dotnet_diagnostic.CA5395.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.
Pseudocodebeispiele
Verletzung
using Microsoft.AspNetCore.Mvc;
[ValidateAntiForgeryToken]
class BlahController : Controller
{
}
class ExampleController : Controller
{
public IActionResult ExampleAction()
{
return null;
}
}
Lösung
using Microsoft.AspNetCore.Mvc;
[ValidateAntiForgeryToken]
class BlahController : Controller
{
}
class ExampleController : Controller
{
[HttpGet]
public IActionResult ExampleAction()
{
return null;
}
}