Freigeben über


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()
    {
    }
}