Поделиться через


CA5395: атрибут Miss HttpVerb для методов действий

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

Причина

Не указывайте явно тип HTTP-запроса для методов действия.

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

Все методы действий, которые создают, изменяют, удаляют или иным образом модифицируют данные, должны быть защищены с помощью атрибута защиты от подделки межсайтовых запросов. Операция GET должна выполняться безопасным способом, то есть не иметь побочных эффектов и не изменять существующие данные.

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

Пометьте методы действия атрибутом HttpVerb.

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

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

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

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

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

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

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

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

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

Нарушение

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    public IActionResult ExampleAction()
    {
        return null;
    }
}

Решение

using Microsoft.AspNetCore.Mvc;

[ValidateAntiForgeryToken]
class BlahController : Controller
{
}

class ExampleController : Controller
{
    [HttpGet]
    public IActionResult ExampleAction()
    {
        return null;
    }
}