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


CA2103: проверьте императивную безопасность

TypeName

ReviewImperativeSecurity

CheckId

CA2103

Категория

Microsoft.Security

Критическое изменение

Критическое изменение

Причина

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

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

Принудительная безопасность использует управляемые объекты для указания разрешений и действий по обеспечению безопасности во время выполнения кода, в отличие от декларативной безопасности, которая использует атрибуты для хранения разрешений и действий в метаданных. Принудительная безопасность отличается крайней гибкостью из-за возможности устанавливать состояние объекта разрешения и выбирать действия по обеспечению безопасности на основе сведений, которые становятся доступны только во время выполнения. Вместе с тем эта гибкость влечет за собой риск того, что сведения среды выполнения, используемые для определения состояния разрешения, могут измениться в процессе выполнения действия.

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

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

Изучите требования принудительной безопасности и убедитесь, что состояние разрешения не основано на сведениях, которые могут измениться в процессе использования разрешения.

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

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

См. также

Основные понятия

Правила написания безопасного кода

Другие ресурсы

Доступ к данным и их моделирование