CA5363: Nie wyłączaj walidacji żądania
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA5363 |
Tytuł | Nie wyłączaj weryfikacji żądań |
Kategoria | Bezpieczeństwo |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
ValidateInput
Atrybut jest ustawiony na false
dla klasy lub metody.
Opis reguły
Walidacja żądań to funkcja w ASP.NET, która analizuje żądania HTTP i określa, czy zawierają potencjalnie niebezpieczną zawartość, która może prowadzić do ataków polegających na wstrzyknięciu, w tym skryptów obejmujących wiele witryn.
Jak naprawić naruszenia
ValidateInput
Ustaw atrybut na true
lub usuń go całkowicie. Możesz też użyć polecenia AllowHTMLAttribute
, aby zezwolić na kod HTML w określonych częściach danych wejściowych.
Kiedy pomijać ostrzeżenia
To naruszenie można pominąć, jeśli cały ładunek w przychodzącym żądaniu HTTP jest pozyskiwany z zaufanej jednostki i nie może zostać naruszony przez przeciwnika przed transportem lub podczas transportu.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.
Przykłady przykładów kodu przykładowego
Naruszenie
Poniższy przykład pseudo-kodu ilustruje wzorzec wykryty przez tę regułę. Spowoduje to wyłączenie walidacji danych wejściowych.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Rozwiązanie
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}