Share via


CA5363: Inaktivera inte validering av begäran

Property Värde
Regel-ID CA5363
Rubrik Inaktivera inte validering av begäran
Kategori Säkerhet
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Nej

Orsak

Attributet ValidateInput är inställt på false för en klass eller metod.

Regelbeskrivning

Validering av begäranden är en funktion i ASP.NET som undersöker HTTP-begäranden och avgör om de innehåller potentiellt farligt innehåll som kan leda till inmatningsattacker, inklusive skript mellan webbplatser.

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

Ange attributet ValidateInput till true eller ta bort det helt. Du kan också använda AllowHTMLAttribute för att tillåta HTML i specifika delar av indata.

När du ska ignorera varningar

Du kan förhindra den här överträdelsen om all nyttolast i den inkommande HTTP-begäran kommer från en betrodd entitet och inte kunde manipuleras av en angripare före eller under transporten.

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 CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363

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.CA5363.severity = none

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

Exempel på pseudokod

Kränkning

Följande pseudokodexempel illustrerar det mönster som identifierats av den här regeln. Detta inaktiverar indataverifiering.

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(false)]
    public void TestActionMethod()
    {
    }
}

Lösning

using System.Web.Mvc;

class TestControllerClass
{
    [ValidateInput(true)]
    public void TestActionMethod()
    {
    }
}