CA5363: Nezakazujte ověření požadavku
Vlastnost | Hodnota |
---|---|
ID pravidla | CA5363 |
Název | Nezakazovat ověřování požadavků |
Kategorie | Zabezpečení |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 8 | No |
Příčina
Atribut ValidateInput
je nastaven na false
třídu nebo metodu.
Popis pravidla
Ověření požadavku je funkce v ASP.NET, která zkoumá požadavky HTTP a určuje, jestli obsahují potenciálně nebezpečný obsah, který může vést k útokům prostřednictvím injektáže, včetně skriptování mezi weby.
Jak opravit porušení
ValidateInput
Nastavte atribut true
na nebo ho úplně odstraňte. Případně můžete AllowHTMLAttribute
povolit HTML v určitých částech vstupu.
Kdy potlačit upozornění
Toto porušení můžete potlačit, pokud veškerá datová část příchozího požadavku HTTP pochází z důvěryhodné entity a nelze s ni před přenosem manipulovat nežádoucí osobou nebo během přenosu.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Příklady pseudokódu
Porušení
Následující ukázka pseudokódu znázorňuje vzor zjištěný tímto pravidlem. Tím se zakáže ověření vstupu.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Řešení
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}