CA5363: не отключайте проверку запроса

Свойство Значение
Идентификатор правила CA5363
Заголовок Не отключать проверку запросов
Категория Безопасность
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 8 No

Причина

Атрибуту ValidateInput присваивается значение false для класса или метода.

Описание правила

Проверка запросов — это функция в ASP.NET, которая проверяет HTTP-запросы и определяет, включают ли они потенциально опасное содержимое, которое может привести к атакам путем внедрения кода, включая подделку межсайтовых запросов.

Устранение нарушений

Присвойте атрибуту ValidateInput значение true или удалите его полностью. Кроме того, можно использовать AllowHTMLAttribute, чтобы разрешить HTML в конкретных частях входных данных.

Когда лучше отключить предупреждения

Это нарушение можно отключить, если все полезные данные во входящем HTTP-запросе поступили от доверенной сущности и не могут быть изменены злоумышленником до или во время передачи.

Отключение предупреждений

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.

[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

Примеры псевдокода

Нарушение

В приведенном ниже примере псевдокода показан шаблон, обнаруживаемый этим правилом. Это отключает проверку входных данных.

using System.Web.Mvc;

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

Решение

using System.Web.Mvc;

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