Набор правил "Правила безопасности" для управляемого кодаSecurity Rules rule set for managed code

Используйте правило Microsoft Security Rules, установленное для устаревшего анализа кода, чтобы максимально увеличить количество потенциальных проблем безопасности, о которых сообщается.Use the Microsoft Security Rules rule set for legacy code analysis to maximize the number of potential security issues that are reported.

ПравилоRule ОписаниеDescription
CA2100CA2100 Проверьте запросы SQL на наличие уязвимостей системы безопасностиReview SQL queries for security vulnerabilities
CA2102CA2102 Перехватывайте исключения, не являющиеся CLSCompliant, с помощью общих обработчиковCatch non-CLSCompliant exceptions in general handlers
CA2103CA2103 Проверьте принудительную безопасностьReview imperative security
CA2104CA2104 Не объявляйте изменяющиеся ссылочные типы только для чтенияDo not declare read only mutable reference types
CA2105CA2105 Поля массивов не должны быть доступны только для чтенияArray fields should not be read only
CA2106CA2106 Обеспечьте безопасность утвержденийSecure asserts
CA2107CA2107 Проверьте использование Deny и Permit OnlyReview deny and permit only usage
CA2108CA2108 Проверьте объявляемые параметры безопасности типов значенийReview declarative security on value types
CA2109CA2109 Проверьте видимые обработчики событийReview visible event handlers
CA2111CA2111 Указатели не должны быть видимымиPointers should not be visible
CA2112CA2112 Защищенные типы не должны предоставлять поляSecured types should not expose fields
CA2114CA2114 Безопасность метода должна быть надмножеством типаMethod security should be a superset of type
CA2115CA2115 Вызывайте GC.KeepAlive при использовании собственных ресурсовCall GC.KeepAlive when using native resources
CA2116CA2116 APTCA-методы должны вызывать только APTCA-методыAPTCA methods should only call APTCA methods
CA2117CA2117 APTCA-типы должны расширять только базовые APTCA-типыAPTCA types should only extend APTCA base types
CA2118CA2118 Проверьте использование атрибута SuppressUnmanagedCodeSecurityAttributeReview SuppressUnmanagedCodeSecurityAttribute usage
CA2119CA2119 Запечатайте методы, соответствующие частным интерфейсамSeal methods that satisfy private interfaces
CA2120CA2120 Обеспечьте безопасность конструкторов сериализацииSecure serialization constructors
CA2121CA2121 Статические конструкторы должны быть частнымиStatic constructors should be private
CA2122CA2122 Не используйте косвенное представление методов с требованиями ссылкиDo not indirectly expose methods with link demands
CA2123CA2123 Переопределяющие требования ссылки должны быть идентичны базовымOverride link demands should be identical to base
CA2124CA2124 Ограничьте уязвимые предложения finally во внешних блоках tryWrap vulnerable finally clauses in outer try
CA2126CA2126 Для требований ссылок на тип необходимы требования наследованияType link demands require inheritance demands
CA2130CA2130 Важные константы безопасности должны быть прозрачнымиSecurity critical constants should be transparent
CA2131CA2131 Критические для безопасности типы не могут участвовать в эквивалентности типовSecurity critical types may not participate in type equivalence
CA2132CA2132 Конструкторы по умолчанию должны быть по меньшей мере такими же критическими, как конструкторы по умолчанию базового типаDefault constructors must be at least as critical as base type default constructors
CA2133CA2133 Делегаты должны быть привязаны к методам с соответствующей прозрачностьюDelegates must bind to methods with consistent transparency
CA2134CA2134 Методы должны сохранять одинаковую прозрачность при переопределении базовых методовMethods must keep consistent transparency when overriding base methods
CA2135CA2135 Сборки уровня 2 не должны содержать LinkDemandsLevel 2 assemblies should not contain LinkDemands
CA2136CA2136 Члены не должны иметь противоречащие заметки прозрачностиMembers should not have conflicting transparency annotations
CA2137CA2137 Прозрачные методы должны содержать только поддающийся проверке промежуточный языкTransparent methods must contain only verifiable IL
CA2138CA2138 Прозрачные методы не должны вызывать методы с атрибутом SuppressUnmanagedCodeSecurityTransparent methods must not call methods with the SuppressUnmanagedCodeSecurity attribute
CA2139CA2139 Прозрачные методы могут не использовать атрибут HandleProcessCorruptingExceptionsTransparent methods may not use the HandleProcessCorruptingExceptions attribute
CA2140CA2140 Прозрачный код не должен ссылаться на критические для безопасности элементыTransparent code must not reference security critical items
CA2141CA2141 Прозрачные методы не должны соответствовать требованиям LinkDemandTransparent methods must not satisfy LinkDemands
CA2142CA2142 Прозрачный код не должен быть защищен проверками LinkDemandsTransparent code should not be protected with LinkDemands
CA2143CA2143 Прозрачные методы не должны использовать требования безопасностиTransparent methods should not use security demands
CA2144CA2144 Прозрачный код не должен выполнять загрузку сборок из массивов байтовTransparent code should not load assemblies from byte arrays
CA2145CA2145 Прозрачные методы не должны быть отмечены атрибутом SuppressUnmanagedCodeSecurityAttributeTransparent methods should not be decorated with the SuppressUnmanagedCodeSecurityAttribute
CA2146CA2146 Типы должны быть по крайней мере настолько же критическими, как их базовые типы и интерфейсыTypes must be at least as critical as their base types and interfaces
CA2147CA2147 Прозрачные методы могут не использовать утверждения безопасностиTransparent methods may not use security asserts
CA2149CA2149 Прозрачные методы не должны вызывать машинный кодTransparent methods must not call into native code
CA2210CA2210 Сборки должны иметь допустимые строгие именаAssemblies should have valid strong names
CA2300CA2300 Не используйте небезопасный десериализатор BinaryFormatterDo not use insecure deserializer BinaryFormatter
CA2301CA2301 Не вызывайте BinaryFormatter.Deserialize, не задав предварительно BinaryFormatter.BinderDo not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
CA2302CA2302 Убедитесь, что BinaryFormatter.Binder задан перед вызовом BinaryFormatter.DeserializeEnsure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
CA2305CA2305 Не используйте небезопасный десериализатор LosFormatterDo not use insecure deserializer LosFormatter
CA2310CA2310 Не используйте небезопасный десериализатор NetDataContractSerializerDo not use insecure deserializer NetDataContractSerializer
CA2311CA2311 Не десериализируйте, не задав предварительно NetDataContractSerializer.BinderDo not deserialize without first setting NetDataContractSerializer.Binder
CA2312CA2312 Убедитесь, что NetDataContractSerializer.Binder задан перед десериализациейEnsure NetDataContractSerializer.Binder is set before deserializing
CA2315CA2315 Не используйте небезопасный десериализатор ObjectStateFormatterDo not use insecure deserializer ObjectStateFormatter
CA2321CA2321 Не десериализируйте с помощью JavaScriptSerializer, используя SimpleTypeResolverDo not deserialize with JavaScriptSerializer using a SimpleTypeResolver
CA2322CA2322 Убедитесь, что JavaScriptSerializer не был инициализирован с помощью SimpleTypeResolver до десериализацииEnsure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
CA3001CA3001 Проверьте код на наличие уязвимостей к внедрению кода SQLReview code for SQL injection vulnerabilities
CA3002CA3002 Проверьте код на наличие уязвимостей к межсайтовым сценариям (XSS)Review code for XSS vulnerabilities
CA3003CA3003 Проверьте код на наличие уязвимостей к внедрению пути к файлуReview code for file path injection vulnerabilities
CA3004CA3004 Проверьте код на наличие уязвимостей к раскрытию информацииReview code for information disclosure vulnerabilities
CA3005CA3005 Проверьте код на наличие уязвимостей к внедрению LDAPReview code for LDAP injection vulnerabilities
CA3006CA3006 Проверьте код на наличие уязвимостей к внедрению команд процессаReview code for process command injection vulnerabilities
CA3007CA3007 Проверьте код на наличие уязвимостей к открытому перенаправлениюReview code for open redirect vulnerabilities
CA3008CA3008 Проверьте код на наличие уязвимостей к внедрению кода XPathReview code for XPath injection vulnerabilities
CA3009CA3009 Проверьте код на наличие уязвимостей к внедрению кода XMLReview code for XML injection vulnerabilities
CA3010CA3010 Проверьте код на наличие уязвимостей к внедрению кода XAMLReview code for XAML injection vulnerabilities
CA3011CA3011 Проверьте код на наличие уязвимостей к внедрению DLLReview code for DLL injection vulnerabilities
CA3012CA3012 Проверьте код на наличие уязвимостей к внедрению регулярных выраженийReview code for regex injection vulnerabilities