CA5363: Deaktivieren Sie die Anforderungsüberprüfung nicht.
Eigenschaft | Wert |
---|---|
Regel-ID | CA5363 |
Titel | Deaktivieren Sie die Anforderungsüberprüfung nicht. |
Kategorie | Security |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig in .NET 9 aktiviert | No |
Ursache
Das Attribut ValidateInput
wurde für eine Klasse oder eine Methode auf false
festgelegt.
Regelbeschreibung
Die Anforderungsüberprüfung ist ein Feature in ASP.NET, das HTTP-Anforderungen untersucht und bestimmt, ob diese potenziell gefährliche Inhalte enthalten, die zu Einschleusungsangriffen wie z. B. Cross-Site Scripting führen können.
Behandeln von Verstößen
Legen Sie das Attribut ValidateInput
auf true
fest oder löschen Sie es vollständig. Alternativ können Sie AllowHTMLAttribute
verwenden, um in bestimmten Teilen der Eingabe HTML zuzulassen.
Wann sollten Warnungen unterdrückt werden?
Sie können diesen Verstoß unterdrücken, wenn die gesamten Nutzdaten der eingehenden HTTP-Anforderung aus einer vertrauenswürdigen Quelle stammen und nicht vor oder während des Transports von einem Angreifer manipuliert werden konnten.
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 CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.
Pseudocodebeispiele
Verletzung
Das folgende Pseudocodebeispiel veranschaulicht das von dieser Regel erkannte Muster. Dadurch wird die Eingabeüberprüfung deaktiviert.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Lösung
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}