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


Проверьте принудительную безопасность

Обновлен: Ноябрь 2007

TypeName

ReviewImperativeSecurity

CheckId

CA2103

Категория

Microsoft.Security

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

Критическое

Причина

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

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

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

Поэтому по возможности следует использовать декларативную безопасность. Декларативные требования более понятны, и их можно обнаружить с помощью таких средств, как Средство просмотра разрешений (Permview.exe).

Предотвращение нарушений

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

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

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

См. также

Ссылки

Средство просмотра разрешений (Permview.exe)

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

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

Доступ к данным