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


Набор правил "Правила безопасности" для управляемого кода

Чтобы максимально способствовать отправке уведомлений о потенциальных проблемах безопасности, нужно включить набор правил "Правила безопасности корпорации Майкрософт"

Правило

Описание

CA2100

Проанализируйте SQL-запросы с целью выявления уязвимостей безопасности

CA2102

Перехватите исключения, не являющиеся CLSCompliant, с помощью общих обработчиков

CA2103

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

CA2104

Не объявляйте изменяемые ссылочные типы, доступные только для чтения

CA2105

Поля массивов не должны быть доступны только для чтения

CA2106

Обеспечьте безопасность утверждений

CA2107

Проверьте использование deny и permit only

CA2108

Проверьте объявляемые параметры безопасности типов значений

CA2109

Проверьте видимые обработчики событий

CA2111

Указатели не должны быть видимыми

CA2112

Защищенные типы не должны предоставлять поля

CA2114

Безопасность метода должна быть надмножеством типа

CA2115

Вызовите GC.KeepAlive при использовании собственных ресурсов

CA2116

APTCA-методы должны вызывать только APTCA-методы

CA2117

APTCA-типы должны расширять только базовые APTCA-типы

CA2118

Проверьте использование SuppressUnmanagedCodeSecurityAttribute

CA2119

Запечатайте методы, соответствующие закрытым интерфейсам

CA2120

Обеспечьте безопасность конструкторов сериализации

CA2121

Статические конструкторы должны быть закрытыми

CA2122

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

CA2123

Переопределяющие требования ссылки должны быть идентичны базовым

CA2124

Ограничьте уязвимые предложения finally во внешних блоках try

CA2126

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

CA2130

Константы критической безопасности должны быть прозрачными

CA2131

Критические с точки зрения безопасности типы могут не участвовать в эквивалентности типов

CA2132

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

CA2133

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

CA2134

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

CA2135

Сборки уровня 2 не должны содержать требования LinkDemand

CA2136

Элементы не должны иметь конфликтующие пометки прозрачности

CA2137

Прозрачные методы должны содержать только поддающийся проверке IL

CA2138

Прозрачные методы не должны вызывать методы с атрибутом SuppressUnmanagedCodeSecurity

CA2139

Прозрачные методы могут не использовать атрибут HandleProcessCorruptingExceptions

CA2140

Прозрачный код не должен ссылаться на элементы, критичные в плане безопасности

CA2141

Прозрачные методы не должны удовлетворять требования LinkDemand

CA2142

Прозрачный код не должен быть защищен с помощью требований LinkDemand

CA2143

Прозрачные методы не должны использовать требования безопасности

CA2144

Прозрачный код не должен загружать сборки из массивов байтов

CA2145

Прозрачные методы не должны быть снабжены атрибутом SuppressUnmanagedCodeSecurityAttribute

CA2146

Типы должны быть настолько же критическими, как их базовые типы и интерфейсы.

CA2147

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

CA2149

Прозрачные методы не должны вызывать машинный код

CA2210

Сборки должны иметь допустимые строгие имена