CA5363: Nie wyłączaj walidacji żądania

Właściwości Wartość
Identyfikator reguły CA5363
Stanowisko Nie wyłączaj weryfikacji żądań
Kategoria Bezpieczeństwo
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 8 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()
    {
    }
}