CA5363: не отключайте проверку запроса
Свойство | Значение |
---|---|
Идентификатор правила | CA5363 |
Заголовок | Не отключать проверку запросов |
Категория | Безопасность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 9 | 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()
{
}
}