CA5363: Inaktivera inte validering av begäran
Property | Värde |
---|---|
Regel-ID | CA5363 |
Title | Inaktivera inte validering av begäran |
Kategori | Säkerhet |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | 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()
{
}
}