Skip to main content

C#のスキャンルール

 

Contrast Scanでは、C#に対して以下のルールをサポートしています。

深刻度

Contrastルール

エンジンルールID

説明

重大

Too Much Origins Allowed

OPT.CSHARP.TooMuchOriginsAllowed 

TooMuchOriginsAllowed:CORSポリシー(クロスオリジンリソース共有)での広すぎる許可範囲

重大

Avoid Exception Throwing In Binary Operators 

OPT.CSHARP.Csharp.AvoidExceptionThrowingInBinaryOperators 

AvoidExceptionThrowingInBinaryOperators:バイナリの等値演算子のオーバーライドでは例外のスローは禁止

重大

Avoid Exception Throwing In Dispose Method 

OPT.CSHARP.Csharp.AvoidExceptionThrowingInDisposeMethod 

AvoidExceptionThrowingInDisposeMethod:Disposeメソッドでは例外のスローは禁止

重大

Avoid Exception Throwing In Equals Clause 

OPT.CSHARP.Csharp.AvoidExceptionThrowingInEqualsClause 

AvoidExceptionThrowingInEqualsClause:Equalsメソッドのオーバーライドでは例外のスローは禁止

重大

Avoid Exception Throwing In Get Hash Code 

OPT.CSHARP.Csharp.AvoidExceptionThrowingInGetHashCode 

AvoidExceptionThrowingInGetHashCode:GetHashCodeメソッドのオーバーライドでは例外のスローは禁止

重大

Dispose Objects Before Losing Scope

OPT.CSHARP.Csharp.DisposeObjectsBeforeLosingScope 

DisposeObjectsBeforeLosingScope:オブジェクトのスコープ内破棄

重大

Do Not Dispose Objects Multiple Times

OPT.CSHARP.Csharp.DoNotDisposeObjectsMultipleTimes 

DoNotDisposeObjectsMultipleTimes:オブジェクトに対して複数回「Dispose」が呼び出されている可能性

重大

Do Not Use Idle Process Priority

OPT.CSHARP.Csharp.DoNotUseIdleProcessPriority 

DoNotUseIdleProcessPriority:アイドルプロセスの優先度の使用の禁止

重大

Mark I Serializable Types With Serializable

OPT.CSHARP.Csharp.MarkISerializableTypesWithSerializable 

MarkISerializableTypesWithSerializable:ISerializableクラスにおけるSerializable属性の指定

重大

Mark Windows Forms Entry Points With Sta Thread

OPT.CSHARP.Csharp.MarkWindowsFormsEntryPointsWithStaThread 

MarkWindowsFormsEntryPointsWithStaThread:WindowsフォームのエントリポイントへのSTAThread属性の付与

重大

Overriding Equal And Distinct Operators 

OPT.CSHARP.Csharp.OverridingEqualAndDistinctOperators 

OverridingEqualAndDistinctOperators:演算子をオーバーライドするすべての型のコード品質( [] {} )

重大

Overriding Equals And Get Hash Code 

OPT.CSHARP.Csharp.OverridingEqualsAndGetHashCode

OverridingEqualsAndGetHashCode:GetHashCodeメソッドをオーバーライドするすべての型は、Equalsメソッドもオーバーライドすることが必要

重大

Null Dereference 

OPT.CSHARP.NullDereference 

NullDereference:NULLポインタの参照禁止

重大

Path Traversal

OPT.CSHARP.PathTraversal 

PathTraversal:リソースへのパス名で構成される、無害化されていないユーザ制御の入力の回避

重大

Reference Self Assigned 

OPT.CSHARP.ReferenceSelfAssigned 

ReferenceSelfAssigned:代入文の中での自己参照

重大

Same Conditional In If Else If 

OPT.CSHARP.SameConditionalInIfElseIf 

SameConditionalInIfElseIf:「if-else」のif文での条件の重複

重大

Same Implementation In Conditional 

OPT.CSHARP.SameImplementationInConditional 

SameImplementationInConditional:条件文の異なる分岐で同じ処理の実装

重大

Same Subexpression In Logical Expression 

OPT.CSHARP.SameSubexpressionInLogicalExpression 

SameSubexpressionInLogicalExpression:論理式内の重複した部分式

重大

Accessibility Subversion Rule

OPT.CSHARP.SEC.AccessibilitySubversionRule 

AccessibilitySubversionRule:.NETアクセス制限の回避(リフレクション)

重大

Anonymous Ldap Bind

OPT.CSHARP.SEC.AnonymousLdapBind 

AnonymousLdapBind:アクセス制御 - 匿名LDAPバインドの検出

重大

Dangerous File Upload

OPT.CSHARP.SEC.DangerousFileUpload 

DangerousFileUpload:制限のない危険なタイプのファイルのアップロード

重大

Code Injection

OPT.CSHARP.CodeInjection 

CodeInjection:コード生成の不適切な制御(コードインジェクション)

重大

Code Injection With Deserialization

OPT.CSHARP.CodeInjectionWithDeserialization 

CodeInjectionWithDeserialization:オブジェクトのデシリアライズ中の動的なコードインジェクション

重大

Command Injection

OPT.CSHARP.CommandInjection 

CommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション)

重大

Static Database Connection

OPT.CSHARP.SEC.StaticDatabaseConnection 

StaticDatabaseConnection:静的なデータベース接続/セッション

重大

Temporary Files Left

OPT.CSHARP.SEC.TemporaryFilesLeft 

TemporaryFilesLeft:削除されない一時ファイル

重大

Cross Site Scripting

OPT.CSHARP.CrossSiteScripting 

CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング)

重大

DoS Regexp

OPT.CSHARP.DoSRegexp 

DoSRegexp:悪意のある正規表現によるDoS攻撃の防止

重大

Ldap Injection

OPT.CSHARP.LdapInjection 

LdapInjection:LDAP検索フィルタにおける無害化されていないユーザ制御入力の回避

重大

Connection String Parameter Pollution

OPT.CSHARP.SEC.ConnectionStringParameterPollution 

ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列

重大

Http Parameter Pollution

OPT.CSHARP.SEC.HttpParameterPollution 

HttpParameterPollution:HTTPパラメータ汚染(HPP)

重大

Http Splitting Rule

OPT.CSHARP.SEC.HttpSplittingRule 

HttpSplittingRule:HTTPヘッダにおけるCR/LFシーケンスの不適切な無害化

重大

Mail Command Injection

OPT.CSHARP.SEC.MailCommandInjection 

MailCommandInjection:メールコマンドインジェクション

重大

No SQL Injection

OPT.CSHARP.SEC.NoSQLInjection 

NoSQLInjection:データクエリロジックにおける特殊要素の不適切な無害化(NoSQLインジェクション)

重大

Wrong Lock Usage 

OPT.CSHARP.WrongLockUsage 

WrongLockUsage:誤ったロックの取得/解除

重大

Process Control

OPT.CSHARP.SEC.ProcessControl 

ProcessControl::信頼できないソースからの実行可能ファイルまたはライブラリのロードの禁止

重大

Registry Manipulation

OPT.CSHARP.SEC.RegistryManipulation 

RegistryManipulation:レジストリの操作

重大

Server Side Request Forgery

OPT.CSHARP.ServerSideRequestForgery 

ServerSideRequestForgery:サーバサイドリクエストフォージェリ(SSRF)

重大

SQL Injection

OPT.CSHARP.SqlInjection 

SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション) 

重大

Stored Cross Site Scripting

OPT.CSHARP.StoredCrossSiteScripting 

StoredCrossSiteScripting:不適切に無害化されたデータベースとエスケープされた出力によるWebコンテンツの生成(格納型クロスサイトスクリプティング、XSS)

重大

MVC Non Action Public Methods

OPT.CSHARP.MVCNonActionPublicMethods 

MVCNonActionPublicMethods:コントローラー内のアクションメソッドではないパブリックメソッドの保護

重大

Weak Cryptographic Hash

OPT.CSHARP.WeakCryptographicHash 

WeakCryptographicHash:脆弱な暗号化ハッシュ

重大

Weak Key Size

OPT.CSHARP.WeakKeySize 

WeakKeySize:脆弱な暗号方式・鍵長の検出 

重大

Weak Symmetric Encryption Algorithm

OPT.CSHARP.WeakSymmetricEncryptionAlgorithm 

WeakSymmetricEncryptionAlgorithm:脆弱な共通鍵暗号アルゴリズム

重大

Weak Symmetric Encryption Mode Of Operation

OPT.CSHARP.WeakSymmetricEncryptionModeOfOperation 

WeakSymmetricEncryptionModeOfOperation:共通鍵暗号での脆弱な操作モードの使用禁止

Plaintext Storage In A Cookie 

OPT.CSHARP.PlaintextStorageInACookie 

PlaintextStorageInACookieRule:Cookieに機密情報の平文保存

Abstract Types Should Not Have Constructors

OPT.CSHARP.Csharp.AbstractTypesShouldNotHaveConstructors 

AbstractTypesShouldNotHaveConstructors:パブリックコンストラクタを持つパブリック抽象クラスの検出

Avoid Com Parameterized Constructors 

OPT.CSHARP.Csharp.AvoidComParameterizedConstructors 

AvoidComParameterizedConstructors:COMはパラメータ化されたコンストラクタをサポートしない

Avoid Com Static Methods 

OPT.CSHARP.Csharp.AvoidComStaticMethods 

AvoidComStaticMethods:COMはstaticメソッドをサポートしない

Avoid Empty Catch Block 

OPT.CSHARP.Csharp.AvoidEmptyCatchBlock 

AvoidEmptyCatchBlock:空のCATCHブロックの使用の回避

Avoid Excessive Complexity

OPT.CSHARP.Csharp.AvoidExcessiveComplexity 

AvoidExcessiveComplexity:循環的複雑度の高いメソッドの回避

Avoid Excessive Locals

OPT.CSHARP.Csharp.AvoidExcessiveLocals 

AvoidExcessiveLocals:多すぎるローカル変数の宣言の回避

Avoid Floating Point Equality

OPT.CSHARP.Csharp.AvoidFloatingPointEquality 

AvoidFloatingPointEquality:浮動小数点変数への(不)等価比較の禁止

Avoid Inconditional Recursive Invocation

OPT.CSHARP.Csharp.AvoidInconditionalRecursiveInvocation 

AvoidInconditionalRecursiveInvocation:前提条件のない再帰的呼び出しの回避

Avoid Out Parameters

OPT.CSHARP.Csharp.AvoidOutParameters 

AvoidOutParameters:publicメソッドまたはprotectedメソッドは、ref/outパラメータを避ける必要

Avoid Overloads In Com Visible Interfaces

OPT.CSHARP.Csharp.AvoidOverloadsInComVisibleInterfaces 

AvoidOverloadsInComVisibleInterfaces:COM visibleインターフェイスにおけるオーバーロードされたメソッドの宣言

Avoid Uncalled Private Code

OPT.CSHARP.Csharp.AvoidUncalledPrivateCode 

AvoidUncalledPrivateCode:呼び出されていないprivate宣言のコードの回避

Avoid Unused Private Fields

OPT.CSHARP.Csharp.AvoidUnusedPrivateFields 

AvoidUnusedPrivateFields:未使用のprivateフィールドの回避

Declare Event Handlers Correctly

OPT.CSHARP.Csharp.DeclareEventHandlersCorrectly 

DeclareEventHandlersCorrectly:イベントハンドラの正しい宣言

Do Not Assume Int Ptr Size Rule

OPT.CSHARP.Csharp.DoNotAssumeIntPtrSizeRule 

DoNotAssumeIntPtrSizeRule:IntPtrまたはUIntPtrにおける32ビット以下の値でのダウンキャスト禁止

Do Not Declare Static Members On Generic Types

OPT.CSHARP.Csharp.DoNotDeclareStaticMembersOnGenericTypes 

DoNotDeclareStaticMembersOnGenericTypes:static型への共有メンバー宣言の禁止

Do Not Declare Visible Instance Fields 

OPT.CSHARP.Csharp.DoNotDeclareVisibleInstanceFields 

DoNotDeclareVisibleInstanceFields:外部から見えるインスタンスフィールドの回避

Do Not Lock On This Or Types

OPT.CSHARP.Csharp.DoNotLockOnThisOrTypes 

DoNotLockOnThisOrTypes:「this」、型、文字列リテラルは「lock」の禁止

Do Not Pass Types By Reference

OPT.CSHARP.Csharp.DoNotPassTypesByReference 

DoNotPassTypesByReference:参照による型の引き渡しの禁止

Exceptions Should Be Public

OPT.CSHARP.Csharp.ExceptionsShouldBePublic 

ExceptionsShouldBePublic:例外のpublic宣言

I Comparable Overriding Methods 

OPT.CSHARP.Csharp.IComparableOverridingMethods 

IComparableOverridingMethods:比較可能な型のメソッドのオーバーライド

Identifiers Should Not Match Keywords

OPT.CSHARP.Csharp.IdentifiersShouldNotMatchKeywords 

IdentifiersShouldNotMatchKeywords:識別子と予約語の一致禁止

Initialize Reference Type Static Fields Inline

OPT.CSHARP.Csharp.InitializeReferenceTypeStaticFieldsInline 

InitializeReferenceTypeStaticFieldsInline:参照型の静的フィールドのインライン初期化

Mark Boolean P Invoke Arguments With Marshal As

OPT.CSHARP.Csharp.MarkBooleanPInvokeArgumentsWithMarshalAs 

MarkBooleanPInvokeArgumentsWithMarshalAs:Boolean型のP/Invoke変数へのMarshalAs属性の付与

Max Methods

OPT.CSHARP.Csharp.MaxMethods 

MaxMethods:メソッドの最大許容数

Move P Invokes To Native Methods Class

OPT.CSHARP.Csharp.MovePInvokesToNativeMethodsClass 

MovePInvokesToNativeMethodsClass:P/InvokesのNativeMethodsクラスへの移動

Nested Namespace Dependency 

OPT.CSHARP.Csharp.NestedNamespaceDependency 

NestedNamespaceDependency:入れ子になった名前空間での型の依存関係

Non Constant Fields Should Not Be Visible

OPT.CSHARP.Csharp.NonConstantFieldsShouldNotBeVisible 

NonConstantFieldsShouldNotBeVisible:publicまたはprotected宣言の静的フィールドが定数や読み取り専用であることの禁止

Overloading Equals Value Types 

OPT.CSHARP.Csharp.OverloadingEqualsValueTypes 

OverloadingEqualsValueTypes:値型の「Equals()」メソッドのオーバーロード

Remove Unused Locals

OPT.CSHARP.Csharp.RemoveUnusedLocals 

RemoveUnusedLocals:未使用のローカル変数

Review Useless Control Flow Rule 

OPT.CSHARP.Csharp.ReviewUselessControlFlowRule 

ReviewUselessControlFlowRule:空のコードブロックの回避

Specify Attribute Usage 

OPT.CSHARP.Csharp.SpecifyAttributeUsage 

SpecifyAttributeUsage:属性には「AttributeUsage」の指定

Suppress Finalize Correctly

OPT.CSHARP.Csharp.SuppressFinalizeCorrectly 

SuppressFinalizeCorrectly:GC.SuppressFinalizeの正しい呼び出し

Variable Names Should Not Match Field Names

OPT.CSHARP.Csharp.VariableNamesShouldNotMatchFieldNames 

VariableNamesShouldNotMatchFieldNames:変数名とフィールド名の一致の禁止

Hardcoded Absolute Path

OPT.CSHARP.HardcodedAbsolutePath 

HardcodedAbsolutePath:絶対パスのハードコード禁止

Null Arg In Equals 

OPT.CSHARP.NullArgInEquals 

NullArgInEquals:Equals()メソッドにnull引数

Resource Leak Database

OPT.CSHARP.ResourceLeakDatabase 

ResourceLeakDatabase:未リリースのデータベースリソース

Resource Leak Ldap

OPT.CSHARP.ResourceLeakLdap 

ResourceLeakLdap:未リリースのLDAPリソース

Resource Leak Stream

OPT.CSHARP.ResourceLeakStream 

ResourceLeakStream:未リリースのストリームリソース

Resource Leak Unmanaged

OPT.CSHARP.ResourceLeakUnmanaged 

ResourceLeakUnmanaged:未リリースの管理されていないリソース

Avoid Certificate Equals

OPT.CSHARP.SEC.AvoidCertificateEquals 

AvoidCertificateEquals:セキュリティコンテキストにおけるX509Certificate.Equals()の使用の禁止

Buffer Overflow

OPT.CSHARP.SEC.BufferOverflow 

BufferOverflow::メモリ破損の可能性

Cookies In Security Decision

OPT.CSHARP.SEC.CookiesInSecurityDecision 

CookiesInSecurityDecision:セキュリティ決定における検証と整合性チェックなしのCookieへの依存

Improper Authentication

OPT.CSHARP.SEC.ImproperAuthentication 

ImproperAuthentication:ユーザによるアクセス権のない操作の実行の回避

Missing Standard Error Handling

OPT.CSHARP.SEC.MissingStandardErrorHandling 

MissingStandardErrorHandling: ASP.Netにおける標準化されたエラー処理メカニズムの欠如

Cross Site Request Forgery

OPT.CSHARP.CrossSiteRequestForgery 

CrossSiteRequestForgery:クロスサイトリクエストフォージェリ(CSRF)

Setting Manipulation

OPT.CSHARP.SEC.SettingManipulation 

SettingManipulation:設定の改ざん

JSON Injection

OPT.CSHARP.JSONInjection 

JSONInjection:JSONエンティティにおける無害化されていないユーザ制御入力の使用の回避

Unvalidated Asp Net Model

OPT.CSHARP.SEC.UnvalidatedAspNetModel 

UnvalidatedAspNetModel:MVC controllerコントローラにおける未検証のモデル

User Controlled SQL Primary Key

OPT.CSHARP.SEC.UserControlledSQLPrimaryKey 

UserControlledSQLPrimaryKey:ユーザ制御の主キーのクエリ使用禁止

MVC Prevent Overposting Model Definition

OPT.CSHARP.MVCPreventOverpostingModelDefinition 

MVCPreventOverpostingModelDefinition:モデル定義におけるオーバーポステイング攻撃の防止

MVC Prevent Underposting Model Composition

OPT.CSHARP.MVCPreventUnderpostingModelComposition 

MVCPreventUnderpostingModelComposition:モデル構成におけるアンダーポスティング攻撃の防止

MVC Prevent Underposting Model Definition

OPT.CSHARP.MVCPreventUnderpostingModelDefinition 

MVCPreventUnderpostingModelDefinition:モデル定義におけるアンダーポステイング攻撃の防止

Open Redirect

OPT.CSHARP.OpenRedirect 

OpenRedirect:信頼できないサイトへのURLリダイレクト(オープンリダイレクト)

Test For Na N Correctly

OPT.CSHARP.TestForNaNCorrectly 

TestForNaNCorrectly:NaNの正しい判定

Cross Site History Manipulation

OPT.CSHARP.SEC.CrossSiteHistoryManipulation 

CrossSiteHistoryManipulation:クロスサイト履歴操作(XSHM)

Transparent Methods Should Not Use Suppress Unmanaged Code Security

OPT.CSHARP.TransparentMethodsShouldNotUseSuppressUnmanagedCodeSecurity 

TransparentMethodsShouldNotUseSuppressUnmanagedCodeSecurity:透過的なメソッドにおける「SuppressUnmanagedCodeSecurity」属性の使用禁止

Use Params For Variable Arguments 

OPT.CSHARP.UseParamsForVariableArguments 

UseParamsForVariableArguments:publicまたはprotectedメソッドが含まれるpublicまたはprotected型には、VarArgs呼び出し規則を使用する

Log Forging

OPT.CSHARP.SEC.LogForging 

LogForging:ログの出力の不適切な無害化

Resource Injection

OPT.CSHARP.SEC.ResourceInjection 

ResourceInjection:リソース識別子の不適切な制御(リソースインジェクション)

Trust Boundary Violation

OPT.CSHARP.SEC.TrustBoundaryViolation 

TrustBoundaryViolation:信頼境界線違反

Unsafe Reflection

OPT.CSHARP.SEC.UnsafeReflection 

UnsafeReflection:クラスまたはコードを選択するための外部制御入力の使用(安全でないリフレクション)

Xml Entity Injection

OPT.CSHARP.SEC.XMLEntityInjection 

XmlEntityInjection:XMLエンティティインジェクション

Xml Injection

OPT.CSHARP.XMLInjection 

XMLInjection: XMLインジェクション(別名、ブラインドXPathインジェクション)

Xpath Injection

OPT.CSHARP.XPathInjection 

XPathInjection:XPath式内のデータの不適切な無害化(XPathインジェクション)

XQuery Injection

OPT.CSHARP.XQueryInjection 

XQueryInjection:XQuery式内のデータの不適切な無害化(XQueryインジェクション)

Xslt Injection

OPT.CSHARP.XSLTInjection 

XSLTInjection:XSLスタイルシート作成時における無害化されていないユーザ制御入力の使用の回避

Review Visible Event Handlers

OPT.CSHARP.Csharp.ReviewVisibleEventHandlers 

ReviewVisibleEventHandlers:publicまたはprotectedとして宣言されたイベントハンドリングメソッドの検出

Information Exposure Through Error Message

OPT.CSHARP.SEC.InformationExposureThroughErrorMessage 

InformationExposureThroughErrorMessage:エラー メッセージによる機密情報の露出の回避

Insecure Email Transport

OPT.CSHARP.SEC.InsecureEmailTransport 

InsecureEmailTransport:安全でないメール送信

Insecure Randomness

OPT.CSHARP.InsecureRandomness 

InsecureRandomnes:安全でない標準的な擬似乱数生成器

Hardcoded Crypto Key

OPT.CSHARP.SEC.HardcodedCryptoKey 

HardcodedCryptoKey:ハードコードされた暗号鍵の使用

Hardcoded Salt

OPT.CSHARP.SEC.HardcodedSalt 

HardcodedSalt:安全でないハードコードされたソルト

Insecure Transport

OPT.CSHARP.SEC.InsecureTransport 

InsecureTransport:安全でない送信

Proper Padding With Public Key Crypto

OPT.CSHARP.SEC.ProperPaddingWithPublicKeyCrypto 

ProperPaddingWithPublicKeyCrypto:最適非対称暗号化パディング(OAEP)を使用しないRSAアルゴリズムの使用

Server Insecure Transport

OPT.CSHARP.SEC.ServerInsecureTransport 

ServerInsecureTransport:HTTPサーバにおける安全でない送信

Weak Encryption

OPT.CSHARP.WeakEncryption 

WeakEncryption:不十分な長さのRSA鍵

情報

Avoid Unneeded Calls On String

OPT.CSHARP.Csharp.AvoidUnneededCallsOnString 

AvoidUnneededCallsOnString: 文字列オブジェクトに対する不要な呼び出しの回避

情報

Identifiers Should Have Correct Suffix

OPT.CSHARP.Csharp.IdentifiersShouldHaveCorrectSuffix 

IdentifiersShouldHaveCorrectSuffix:識別子における正しいサフィックス(接尾辞)

情報

Identifiers Should Not Contain Underscores

OPT.CSHARP.Csharp.IdentifiersShouldNotContainUnderscores 

IdentifiersShouldNotContainUnderscores:識別子に含まれてるアンダースコア文字

情報

Identifiers Should Not Have Incorrect Suffix

OPT.CSHARP.Csharp.IdentifiersShouldNotHaveIncorrectSuffix 

IdentifiersShouldNotHaveIncorrectSuffix:識別子における誤ったサフィックス(接尾辞)

情報

Normalize Strings To Uppercase

OPT.CSHARP.Csharp.NormalizeStringsToUppercase 

NormalizeStringsToUppercase:文字列を小文字に変換しない

情報

Parameter Names Should Not Match Member Names

OPT.CSHARP.Csharp.ParameterNamesShouldNotMatchMemberNames 

ParameterNamesShouldNotMatchMemberNames:パラメータ名とメンバー名の一致の禁止

情報

Property Type 

OPT.CSHARP.Csharp.PropertyType 

PropertyType:プロパティには、その型と同様な名前が必要

情報

Use Exception Constructor 

OPT.CSHARP.Csharp.UseExceptionConstructor 

UseExceptionConstructor:不正な例外スロー:例外は別々のメソッドで作成することが必要

情報

Do Not Initialize Unnecessarily

OPT.CSHARP.DoNotInitializeUnnecessarily 

DoNotInitializeUnnecessarily:不必要な変数の初期化

情報

Use Literals Where Appropriate

OPT.CSHARP.UseLiteralsWhereAppropriate 

UseLiteralsWhereAppropriate: 値で初期化されるstatic型や読み取り専用フィールドの宣言の禁止

Avoid Language Specific Type Names In Parameters

OPT.CSHARP.AvoidLanguageSpecificTypeNamesInParameters 

AvoidLanguageSpecificTypeNamesInParameters:public宣言されたメソッドのパラメータ名における言語固有の型名の禁止

Avoid System Output Stream 

OPT.CSHARP.AvoidSystemOutputStream 

AvoidSystemOutputStream:独自のログインターフェースではなく、「Console.Out」や「Console.Error」を使用するとソフトウェアの動作の監視がしにくい

Avoid Type Names In Parameters 

OPT.CSHARP.AvoidTypeNamesInParameters 

AvoidTypeNamesInParameters:public宣言されたメソッドでは、パラメータ名に型名を含めることは禁止

Avoid Unnecessary String Creation

OPT.CSHARP.AvoidUnnecessaryStringCreation 

AvoidUnnecessaryStringCreation:System.String.ToLowerまたはSystem.String.ToUpperへの呼び出しにおける不要な文字列作成の回避

Collection Properties Should Be Read Only

OPT.CSHARP.CollectionPropertiesShouldBeReadOnly 

CollectionPropertiesShouldBeReadOnly:コレクションのプロパティは読み取り専用

Consider Converting Method To Property

OPT.CSHARP.ConsiderConvertingMethodToProperty 

ConsiderConvertingMethodToProperty:getter/setterメソッドをプロパティに変更することを考慮

Attribute String Literals Should Parse Correctly

OPT.CSHARP.Csharp.AttributeStringLiteralsShouldParseCorrectly 

AttributeStringLiteralsShouldParseCorrectly:属性のリテラル値の正しい記述

Avoid Exceptions In Implicit Transformation 

OPT.CSHARP.Csharp.AvoidExceptionsInImplicitTransformation 

AvoidExceptionsInImplicitTransformation:暗黙の演算子での例外のスローの回避

Avoid Long Methods 

OPT.CSHARP.Csharp.AvoidLongMethods 

AvoidLongMethods:大きなメソッドのエンコード禁止

Avoid Long Parameter Lists

OPT.CSHARP.Csharp.AvoidLongParameterLists 

AvoidLongParameterLists:パラメータが多すぎるメソッドのエンコード禁止

Avoid Namespaces With Few Types

OPT.CSHARP.Csharp.AvoidNamespacesWithFewTypes 

AvoidNamespacesWithFewTypes:型が少ない名前空間の回避

Avoid Non Stored Procedure Commands

OPT.CSHARP.Csharp.AvoidNonStoredProcedureCommands 

AvoidNonStoredProcedureCommands:ストアドプロシージャ以外のデータベース操作の使用回避

Avoid Type Get Type For Constant Strings

OPT.CSHARP.Csharp.AvoidTypeGetTypeForConstantStrings 

AvoidTypeGetTypeForConstantStrings:定数文字列値でのType.GetType()呼び出しの禁止

Call Base Class Methods On I Serializable Types

OPT.CSHARP.Csharp.CallBaseClassMethodsOnISerializableTypes 

CallBaseClassMethodsOnISerializableTypes:ISerializable型の基底クラスのメソッド呼び出し

Check New Exception Without Throwing

OPT.CSHARP.Csharp.CheckNewExceptionWithoutThrowing 

CheckNewExceptionWithoutThrowing:例外のインスタンス化が未使用

Consider Custom Accessors For Non Visible Events Rule

OPT.CSHARP.Csharp.ConsiderCustomAccessorsForNonVisibleEventsRule 

ConsiderCustomAccessorsForNonVisibleEventsRule:非表示イベントにおいて、既定のアクセサの代わりにカスタムアクセサを使用することの検討

Delegates Passed To Native Code Must Include Exception Handling Rule

OPT.CSHARP.Csharp.DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule 

DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule:ネイティブコードに渡すデリゲートのブロック全体をcatchハンドラで囲むことの必要性

Do Not Cast Unnecessarily

OPT.CSHARP.Csharp.DoNotCastUnnecessarily 

DoNotCastUnnecessarily:引数またはローカル変数の1つに対して重複したキャストを実行するメソッド

Do Not Destroy Stack Trace Rule

OPT.CSHARP.Csharp.DoNotDestroyStackTraceRule 

DoNotDestroyStackTraceRule:catchハンドラで同じ例外をスローするのではなく、元の例外を再スローすることが必要

Do Not Hardcode Locale Specific Strings

OPT.CSHARP.Csharp.DoNotHardcodeLocaleSpecificStrings 

DoNotHardcodeLocaleSpecificStrings:ロケール固有の文字列のハードコードの禁止

Do Not Indirectly Expose Methods With Link Demands

OPT.CSHARP.Csharp.DoNotIndirectlyExposeMethodsWithLinkDemands 

DoNotIndirectlyExposeMethodsWithLinkDemands:リンク要求のあるメソッドを間接的に公開することの禁止

Do Not Pass Literals As Localized Parameters

OPT.CSHARP.Csharp.DoNotPassLiteralsAsLocalizedParameters 

DoNotPassLiteralsAsLocalizedParameters:パラメータとして渡される文字列リテラルのローカライズ

Do Not Raise Exceptions In Unexpected Locations

OPT.CSHARP.Csharp.DoNotRaiseExceptionsInUnexpectedLocations 

DoNotRaiseExceptionsInUnexpectedLocations:予期しない箇所での例外発生の回避

Do Not Use Thread Static With Instance Fields

OPT.CSHARP.Csharp.DoNotUseThreadStaticWithInstanceFields 

DoNotUseThreadStaticWithInstanceFields:インスタンスフィールドでの「ThreadStatic」使用の禁止

Overloading Equals Reference Types 

OPT.CSHARP.Csharp.OverloadingEqualsReferenceTypes 

OverloadingEqualsReferenceTypes:参照型の等価演算子のオーバーロード禁止

Override Equals On Value Types

OPT.CSHARP.Csharp.OverrideEqualsOnValueTypes 

OverrideEqualsOnValueTypes:公開値型がEqualsをオーバーライドしていないことを検出

Properties Should Not Return Arrays

OPT.CSHARP.Csharp.PropertiesShouldNotReturnArrays 

PropertiesShouldNotReturnArrays:プロパティからの配列のリターンの禁止

Property Names Should Not Match Get Methods

OPT.CSHARP.Csharp.PropertyNamesShouldNotMatchGetMethods 

PropertyNamesShouldNotMatchGetMethods:プロパティ名とgetメソッドの一致の禁止

Review Unused Parameters

OPT.CSHARP.Csharp.ReviewUnusedParameters 

ReviewUnusedParameters:使用されていないメソッドパラメータ

Specify Message Box Options

OPT.CSHARP.Csharp.SpecifyMessageBoxOptions 

SpecifyMessageBoxOptions:MessageBoxOptionsの指定

Test For Empty Strings Using Length

OPT.CSHARP.Csharp.TestForEmptyStringsUsingLength 

TestForEmptyStringsUsingLength:「Equals」を使用した空文字列との比較 

Type Names Should Not Match Namespaces

OPT.CSHARP.Csharp.TypeNamesShouldNotMatchNamespaces 

TypeNamesShouldNotMatchNamespaces:型名と名前空間の一致の禁止

Types That Own Native Resources Should Be Disposable

OPT.CSHARP.Csharp.TypesThatOwnNativeResourcesShouldBeDisposable 

TypesThatOwnNativeResourcesShouldBeDisposable:ネイティブリソースを所有する型を破棄することの必要性

Use Constructors To Initialize Properties 

OPT.CSHARP.Csharp.UseConstructorsToInitializeProperties 

UseConstructorsToInitializeProperties:コンストラクターを使用したプロパティの初期化

Use Constructors To Set Properties 

OPT.CSHARP.Csharp.UseConstructorsToSetProperties 

UseConstructorsToSetProperties:パラメータを持つコンストラクタを使用したプロパティの設定

Write Static Field From Instance Method

OPT.CSHARP.Csharp.WriteStaticFieldFromInstanceMethod 

WriteStaticFieldFromInstanceMethod:インスタンスメソッドから静的フィールドへの書き込み禁止

Disposable Types Should Declare Finalizer

OPT.CSHARP.DisposableTypesShouldDeclareFinalizer 

DisposableTypesShouldDeclareFinalizer:System.IDisposableを実装し、アンマネージド型のフィールドを持つ型におけるファイナライザーの必要性

Do Not Assign Params Not Out Or Ref 

OPT.CSHARP.DoNotAssignParamsNotOutOrRef 

DoNotAssignParamsNotOutOrRef:「out」または「ref」としてマークされていないメソッドパラメータの割り当て禁止

Do Not Concatenate Strings Inside Loops

OPT.CSHARP.DoNotConcatenateStringsInsideLoops 

DoNotConcatenateStringsInsideLoops:ループ内での文字列の連結の禁止

Do Not Mark Enums With Flags

OPT.CSHARP.DoNotMarkEnumsWithFlags 

DoNotMarkEnumsWithFlags:System.FlagsAttribute属性を持つ列挙型の値が2のべき乗であるかのチェック

Do Not Prefix Enum Values With Type Name

OPT.CSHARP.DoNotPrefixEnumValuesWithTypeName 

DoNotPrefixEnumValuesWithTypeName:列挙型のメンバー名が列挙型名で始まることの禁止

Identifiers Should Be Cased Correctly

OPT.CSHARP.IdentifiersShouldBeCasedCorrectly 

IdentifiersShouldBeCasedCorrectly:規約に従った「パスカルケース」と「キャメルケース」の正しい使用

Implement Serialization Constructors

OPT.CSHARP.ImplementSerializationConstructors 

ImplementSerializationConstructors: ISerializableを実装する型におけるシリアライズコンストラクタの実装の必要性

Implement Serialization Methods Correctly

OPT.CSHARP.ImplementSerializationMethodsCorrectly 

ImplementSerializationMethodsCorrectly:シリアライズイベントを処理するメソッドでの正しいシグネチャの実装

Initialize Value Type Static Fields Inline

OPT.CSHARP.InitializeValueTypeStaticFieldsInline 

InitializeValueTypeStaticFieldsInline:静的コンストラクタの明示的な宣言の回避

Instantiate Argument Exceptions Correctly

OPT.CSHARP.InstantiateArgumentExceptionsCorrectly 

InstantiateArgumentExceptionsCorrectly;ArgumentExceptionsのデフォルトコンストラクタの呼び出しの回避

Operator Overloads Have Named Alternates

OPT.CSHARP.OperatorOverloadsHaveNamedAlternates 

OperatorOverloadsHaveNamedAlternates:型が演算子をオーバーライドする場合に代替メソッドもオーバーライドすることの推奨

Overload Operator Equals On Overriding Equals

OPT.CSHARP.OverloadOperatorEqualsOnOverridingEquals 

OverloadOperatorEqualsOnOverridingEquals: 型が System.Object.Equalsメソッドをオーバーライドする場合に演算子もオーバーライドすることが必要

Prefer Jagged Arrays Over Multidimensional

OPT.CSHARP.PreferJaggedArraysOverMultidimensional 

PreferJaggedArraysOverMultidimensional:多次元配列の宣言不可

Use Managed Equivalents Of Win32 Api

OPT.CSHARP.UseManagedEquivalentsOfWin32Api 

UseManagedEquivalentsOfWin32Api:Win32APIのマネージドAPIの使用

Constants Should Be Transparent

OPT.CSHARP.ConstantsShouldBeTransparent 

ConstantsShouldBeTransparent:フィールド定数/列挙型メンバーの透過性の必要

Information Exposure Through Debug Log

OPT.CSHARP.SEC.InformationExposureThroughDebugLog 

InformationExposureThroughDebugLog:ログによる重要な情報の公開の回避

Unsafe Cookie Rule

OPT.CSHARP.SEC.UnsafeCookieRule 

UnsafeCookieRule: 適切なセキュリティプロパティを持つサーバ側のCookieの生成

Avoid Null Reference Exception 

OPT.CSHARP.AvoidNullReferenceException 

AvoidNullReferenceException:NULLポインタの参照を検出するためにNullPointerExceptionをキャッチする

Avoid Readonly Mutable Types

OPT.CSHARP.AvoidReadonlyMutableTypes 

AvoidReadonlyMutableTypes:外部から参照可能な読み取り専用フィールドでの変更可能な型宣言の回避

Call GC Keep Alive When Usinga Ntive Resources

OPT.CSHARP.CallGCKeepAliveWhenUsingaNtiveResources 

CallGCKeepAliveWhenUsingaNtiveResources: GC.KeepAliveはアンマネージドリソースで呼び出すことが必要

Critical Types Must Not Participate In Type Equivalence

OPT.CSHARP.CriticalTypesMustNotParticipateInTypeEquivalence 

CriticalTypesMustNotParticipateInTypeEquivalence:型の等価性に関与するメンバーや型でのSecurityCriticalAttributeの使用禁止

Array Fields Should Not Be Read Only

OPT.CSHARP.Csharp.ArrayFieldsShouldNotBeReadOnly 

ArrayFieldsShouldNotBeReadOnly:読み取り専用の配列フィールドの禁止

Attribute Class Suffix 

OPT.CSHARP.Csharp.AttributeClassSuffix 

AttributeClassSuffix:属性クラス名には「Attribute」サフィックスが必要

Avoid Calling Problematic Methods

OPT.CSHARP.Csharp.AvoidCallingProblematicMethods 

AvoidCallingProblematicMethods:危険な呼び出しの可能性

Avoid Custom Application Exceptions 

OPT.CSHARP.Csharp.AvoidCustomApplicationExceptions 

AvoidCustomApplicationExceptions:ApplicationExceptionを継承したクラスの使用禁止

Avoid Empty Constructors In Structs 

OPT.CSHARP.Csharp.AvoidEmptyConstructorsInStructs 

AvoidEmptyConstructorsInStructs:構造体内の空のコンストラクタの回避

Avoid Indexers In Non Collection Classes 

OPT.CSHARP.Csharp.AvoidIndexersInNonCollectionClasses 

AvoidIndexersInNonCollectionClasses:非コレクションクラスのインデクサーの使用回避

Avoid Large Methods

OPT.CSHARP.Csharp.AvoidLargeMethods 

AvoidLargeMethods:コード行数が多すぎる関数やメソッドの回避

Avoid Large Structure

OPT.CSHARP.Csharp.AvoidLargeStructure 

AvoidLargeStructure:大きすぎる構造体の作成の回避

Avoid Uninstantiated Internal Classes

OPT.CSHARP.Csharp.AvoidUninstantiatedInternalClasses 

AvoidUninstantiatedInternalClasses:インスタンス化されていない内部クラスの使用回避

Avoid Unsealed Concrete Attributes Rule

OPT.CSHARP.Csharp.AvoidUnsealedConcreteAttributesRule 

AvoidUnsealedConcreteAttributesRule:抽象化されていないシール(非継承)として定義されている属性の使用回避

Call Get Last Error Immediately After P Invoke

OPT.CSHARP.Csharp.CallGetLastErrorImmediatelyAfterPInvoke 

CallGetLastErrorImmediatelyAfterPInvoke:P/Invoke直後のGetLastErrorの呼び出し

Check New Thread Without Start

OPT.CSHARP.Csharp.CheckNewThreadWithoutStart 

CheckNewThreadWithoutStart:開始されていないスレッドの作成の回避

Clone Method Should Not Return Null

OPT.CSHARP.Csharp.CloneMethodShouldNotReturnNull 

CloneMethodShouldNotReturnNull:上書きされたClone()メソッドにおけるNullのリターンの禁止

Collection Class Suffix 

OPT.CSHARP.Csharp.CollectionClassSuffix 

CollectionClassSuffix:コレクションクラスの名前は「Collection」のサフィックスで終わることが必要

Collections Should Implement Generic Interface

OPT.CSHARP.Csharp.CollectionsShouldImplementGenericInterface 

CollectionsShouldImplementGenericInterface: コレクションのジェネリックインターフェイス実装

Com Visible Type Base Types Should Be Com Visible

OPT.CSHARP.Csharp.ComVisibleTypeBaseTypesShouldBeComVisible 

ComVisibleTypeBaseTypesShouldBeComVisible:COM visible型は非COM visible型から派生

Consider Passing Base Types As Parameters

OPT.CSHARP.Csharp.ConsiderPassingBaseTypesAsParameters 

ConsiderPassingBaseTypesAsParameters:基本型をパラメータとして渡すことの検討

Declare Types In Namespaces

OPT.CSHARP.Csharp.DeclareTypesInNamespaces 

DeclareTypesInNamespaces:名前空間での型の宣言

Default Parameters Should Not Be Used

OPT.CSHARP.Csharp.DefaultParametersShouldNotBeUsed 

DefaultParametersShouldNotBeUsed:デフォルトパラメータの使用禁止

Disable Debugging Code Rule

OPT.CSHARP.Csharp.DisableDebuggingCodeRule 

DisableDebuggingCodeRule:Console.WriteLineの使用回避

Disposable Fields Should Be Disposed

OPT.CSHARP.Csharp.DisposableFieldsShouldBeDisposed 

DisposableFieldsShouldBeDisposed:System.IDisposableを実装するフィールドのDisposeメソッドの呼び出し

Do Not Call Overridable Methods In Constructors

OPT.CSHARP.Csharp.DoNotCallOverridableMethodsInConstructors 

DoNotCallOverridableMethodsInConstructors:コンストラクタからの仮想メソッドの呼び出し

Do Not Catch General Exception Types

OPT.CSHARP.Csharp.DoNotCatchGeneralExceptionTypes 

DoNotCatchGeneralExceptionTypes:「Generic」型の例外のキャッチ

Do Not Declare Virtual Members In Sealed Types 

OPT.CSHARP.Csharp.DoNotDeclareVirtualMembersInSealedTypes 

DoNotDeclareVirtualMembersInSealedTypes:シールされたクラスで仮想メンバーや非finalでないメンバー宣言の禁止

Do Not Decrease Inherited Member Visibility

OPT.CSHARP.Csharp.DoNotDecreaseInheritedMemberVisibility 

DoNotDecreaseInheritedMemberVisibility:継承されたメンバーの可視性減少の禁止

Do Not Ignore Method Results

OPT.CSHARP.Csharp.DoNotIgnoreMethodResults 

DoNotIgnoreMethodResults:メソッドの戻り値無視の禁止

Do Not Nest Generic Types In Member Signatures 

OPT.CSHARP.Csharp.DoNotNestGenericTypesInMemberSignatures 

DoNotNestGenericTypesInMemberSignatures:外部から見えるメンバにジェネリック型を入れ子にすることは禁止

Do Not Raise Exceptions In Exception Clauses

OPT.CSHARP.Csharp.DoNotRaiseExceptionsInExceptionClauses 

DoNotRaiseExceptionsInExceptionClauses:例外句で例外の発生の禁止

Do Not Raise Reserved Exception Types

OPT.CSHARP.Csharp.DoNotRaiseReservedExceptionTypes 

DoNotRaiseReservedExceptionTypes:予約された例外の種類の発生の禁止

Do Not Use Timers That Prevent Power State Changes

OPT.CSHARP.Csharp.DoNotUseTimersThatPreventPowerStateChanges 

DoNotUseTimersThatPreventPowerStateChanges:電源状態の変更を妨げるタイマーの回避

Double Check Locking Rule

OPT.CSHARP.Csharp.DoubleCheckLockingRule 

DoubleCheckLockingRule:Singletonパターンにおける二重チェックの誤用

Equality Operator If Plus Or Minus 

OPT.CSHARP.Csharp.EqualityOperatorIfPlusOrMinus 

EqualityOperatorIfPlusOrMinus:加算演算子や減算演算子がオーバーライドされている場合は等価演算子もオーバーライド

Exception Class Suffix 

OPT.CSHARP.Csharp.ExceptionClassSuffix 

ExceptionClassSuffix:例外クラス名の末尾には「Exception」のサフィックスが必要

Exception Constructors

OPT.CSHARP.Csharp.ExceptionConstructors 

ExceptionConstructors:「Exception」を継承するクラスは、すべての標準コンストラクタを実装することが必要

Implement I Disposable Correctly 

OPT.CSHARP.Csharp.ImplementIDisposableCorrectly 

ImplementIDisposableCorrectly:IDisposableの正しい実装

Implement I Disposable With Finalize 

OPT.CSHARP.Csharp.ImplementIDisposableWithFinalize 

IDisposableWithFinalizeを実装する:IDisposableインターフェースが提供するDisposeのメソッドの実装

Implement I Serializable Correctly

OPT.CSHARP.Csharp.ImplementISerializableCorrectly 

ImplementISerializableCorrectly:ISerializableの正しい実装

Implement Standard Exception Constructors

OPT.CSHARP.Csharp.ImplementStandardExceptionConstructors 

ImplementStandardExceptionConstructors:標準の例外コンストラクタの実装

Interface Name 

OPT.CSHARP.Csharp.InterfaceName 

InterfaceName: インターフェイス名の命名規則

Level2 Assemblies Should Not Contain Linkdemands

OPT.CSHARP.Csharp.Level2AssembliesShouldNotContainLinkdemands 

Level2AssembliesShouldNotContainLinkdemands:レベル2セキュリティを使用しているアプリケーションにおける、クラス/クラスメンバーによるLinkDemandの使用

Mark Members As Static

OPT.CSHARP.Csharp.MarkMembersAsStatic 

MarkMembersAsStatic:クラスメンバーのみにアクセスするメソッドにおける「static」の付与

Members Should Not Expose Certain Concrete Types

OPT.CSHARP.Csharp.MembersShouldNotExposeCertainConcreteTypes 

MembersShouldNotExposeCertainConcreteTypes: メンバーによる特定の具象型の公開禁止

Method Case 

OPT.CSHARP.Csharp.MethodCase 

MethodCase:同じクラス内に大文字と小文字だけ異なるメソッド名

Namespace Case 

OPT.CSHARP.Csharp.NamespaceCase 

NamespaceCase:大文字と小文字だけ異なる名前空間名

Naming Class Namespace 

OPT.CSHARP.Csharp.NamingClassNamespace 

NamingClassNamespace:名前空間名が含まれるクラス名と同じものは禁止

Nested Types Should Not Be Visible

OPT.CSHARP.Csharp.NestedTypesShouldNotBeVisible 

NestedTypesShouldNotBeVisible:外部から参照可能な型における外部から参照可能な型の宣言

Num Max Class By Namespace 

OPT.CSHARP.Csharp.NumMaxClassByNamespace 

NumMaxClassByNamespaces:パッケージ/名前空間ごとの過剰なクラス数の回避

Only Flags Enums Should Have Plural Names

OPT.CSHARP.Csharp.OnlyFlagsEnumsShouldHavePluralNames 

OnlyFlagsEnumsShouldHavePluralNames:外部から参照可能な列挙型が複数形の名前で終わり、Flags属性が設定されていないことの検出

Operations Should Not Overflow

OPT.CSHARP.Csharp.OperationsShouldNotOverflow 

OperationsShouldNotOverflow:演算のオーバーフロー防止

Parameter Case 

OPT.CSHARP.Csharp.ParameterCase 

ParameterCase:メソッド宣言の中に、大文字と小文字だけ異なるパラメータ名

Pass System Obj Instead Of String

OPT.CSHARP.Csharp.PassSystemObjInsteadOfString 

PassSystemObjInsteadOfString:文字列の代わりに「System.Uri」オブジェクトを渡す

Pointers Should Not Be Visible

OPT.CSHARP.Csharp.PointersShouldNotBeVisible 

PointersShouldNotBeVisible:ポインターは参照可能にしない

Properties Should Not Be Write Only

OPT.CSHARP.Csharp.PropertiesShouldNotBeWriteOnly 

PropertiesShouldNotBeWriteOnly:書き込み専用プロパティの回避

Property Case 

OPT.CSHARP.Csharp.PropertyCase 

PropertyCase:同じクラス内に、大文字と小文字だけ異なるプロパティ名

Rethrow To Preserve Stack Details

OPT.CSHARP.Csharp.RethrowToPreserveStackDetails 

RethrowToPreserveStackDetails:例外の明示的な再スローの禁止

Set Locale For Data Types

OPT.CSHARP.Csharp.SetLocaleForDataTypes 

SetLocaleForDataTypes:データ型へのロケールプロパティの設定

Specify Culture Info

OPT.CSHARP.Csharp.SpecifyCultureInfo 

SpecifyCultureInfo:CultureInfoの指定

Specify String Comparison

OPT.CSHARP.Csharp.SpecifyStringComparison 

SpecifyStringComparison:StringComparisonの指定

Static Holder Types Should Be Sealed

OPT.CSHARP.Csharp.StaticHolderTypesShouldBeSealed 

StaticHolderTypesShouldBeSealed:静的メンバーのみを含むクラスは「sealed」と宣言することが必要

Static Holder Types Should Not Have Constructors

OPT.CSHARP.Csharp.StaticHolderTypesShouldNotHaveConstructors 

StaticHolderTypesShouldNotHaveConstructors:静的ホルダー型にコンストラクタを含めない

Type Case 

OPT.CSHARP.Csharp.TypeCase 

TypeCase:大文字と小文字だけ異なるタイプ名

Types Should Not Extend Certain Base Types

OPT.CSHARP.Csharp.TypesShouldNotExtendCertainBaseTypes 

TypesShouldNotExtendCertainBaseTypes:型における一定の基本型の拡張の禁止

Uri Parameters Should Not Be Strings

OPT.CSHARP.Csharp.UriParametersShouldNotBeStrings 

UriParametersShouldNotBeStrings:URIパラメータが文字列であることは不可

Uri Return Values Should Not Be Strings

OPT.CSHARP.Csharp.UriReturnValuesShouldNotBeStrings 

UriReturnValuesShouldNotBeStrings:メソッドの名前に「uri」、「Uri」、「urn'」、「Urn'」、「url」、「Url」が含まれ、文字列が返されることを検出

Use Generic Event Handler Instances

OPT.CSHARP.Csharp.UseGenericEventHandlerInstances 

UseGenericEventHandlerInstances:汎用イベントハンドラのインスタンスの使用

Use Safe Handle To Encapsulate Native Resources

OPT.CSHARP.Csharp.UseSafeHandleToEncapsulateNativeResources 

UseSafeHandleToEncapsulateNativeResources:System.IntPtrの使用

Validate Arguments Of Public Methods

OPT.CSHARP.Csharp.ValidateArgumentsOfPublicMethods 

ValidateArgumentsOfPublicMethods:外部から参照可能なメソッドにおける引数の確認

Warn Of Assignations In Conditional Statements 

OPT.CSHARP.Csharp.WarnOfAssignationsInConditionalStatements 

WarnOfAssignationsInConditionalStatements:if文条件式での代入

Classes Are Strongly Internally Coupled 

OPT.CSHARP.ClassesAreStronglyInternallyCoupled 

ClassesAreStronglyInternallyCoupled:内部的に強く結合されたクラスの回避

Dispose Methods Should Call Suppress Finalize

OPT.CSHARP.DisposeMethodsShouldCallSuppressFinalize 

DisposeMethodsShouldCallSuppressFinalize:System.IDisposableを実装するクラスのDisposeメソッドでGC.SuppressFinalizeを呼び出す必要性

Method Security Should Be Superset Of Type

OPT.CSHARP.MethodSecurityShouldBeSupersetOfType 

MethodSecurityShouldBeSupersetOfType:メソッドのセキュリティは型のセキュリティのサブセットであることが必要

MVC Post In Controllers

OPT.CSHARP.MVCPostInControllers 

MVCPostInControllers:MVCコントローラの状態変更操作で許可されるHTTP動詞の制限

Potential Infinite Loop

OPT.CSHARP.PotentialInfiniteLoop 

PotentialInfiniteLoop:到達不可能な終了条件を持つルール(無限ループ)

Provide Correct Arguments To Formatting Methods

OPT.CSHARP.ProvideCorrectArgumentsToFormattingMethods 

ProvideCorrectArgumentsToFormattingMethods:System.String.Formatに渡されたformat引数が、パラメータとして渡されたオブジェクトと一致しないことを検出

Provide Deserialization Methods For Optional Fields

OPT.CSHARP.ProvideDeserializationMethodsForOptionalFields 

ProvideDeserializationMethodsForOptionalFields:OptionalFieldAttributeでマークされたフィールドをデシリアライズするためのメソッドの提供

Review Declarative Security On Value Types

OPT.CSHARP.ReviewDeclarativeSecurityOnValueTypes 

ReviewDeclarativeSecurityOnValueTypes:値型における宣言型セキュリティの回避

Review Imperative Security

OPT.CSHARP.ReviewImperativeSecurity 

ReviewImperativeSecurity:可能な限りの命令型セキュリティ使用の回避

Http Request Value Shadowing

OPT.CSHARP.SEC.HttpRequestValueShadowing 

HttpRequestValueShadowing:リクエスト データがあいまいな方法でアクセスされれており、攻撃に対して脆弱になる可能性があることを検出

Main Method In Web Application

OPT.CSHARP.SEC.MainMethodInWebApplication 

MainMethodInWebApplication:WebアプリケーションでのMain()メソッドの使用禁止

Avoid Host Name Checks

OPT.CSHARP.SEC.AvoidHostNameChecks 

AvoidHostNameChecks:DNSポイズニングによる信頼性の低いクライアント側のホスト名のチェックの回避

System Information Leak

OPT.CSHARP.SystemInformationLeak 

SystemInformationLeak:不正な制御範囲へのシステムデータ漏洩の検出

Transparent Methods Must Not Call Native Code

OPT.CSHARP.TransparentMethodsMustNotCallNativeCode 

TransparentMethodsMustNotCallNativeCode: 透過的なメソッドにおけるネイティブコード呼び出しの禁止

Transparent Methods Must Not Handle Process Corrupting Exceptions

OPT.CSHARP.TransparentMethodsMustNotHandleProcessCorruptingExceptions 

TransparentMethodsMustNotHandleProcessCorruptingExceptions:透過的なメソッドにおけるHandleProcessCorruptedStateExceptionsAttribute属性付与の禁止

Transparent Methods Should Not Be Protected With Link Demands

OPT.CSHARP.TransparentMethodsShouldNotBeProtectedWithLinkDemands 

TransparentMethodsShouldNotBeProtectedWithLinkDemands:透過的なメソッドにおいてLinkDemandは不要

Transparent Methods Should Not Demand

OPT.CSHARP.TransparentMethodsShouldNotDemand 

TransparentMethodsShouldNotDemand:透過的なメソッドにおいてSecurityAction.Demandを要求せずCodeAccessPermission.Demandメソッドを呼び出さないこと

Transparent Methods Should Not Load Assemblies From Byte Arrays

OPT.CSHARP.TransparentMethodsShouldNotLoadAssembliesFromByteArrays 

TransparentMethodsShouldNotLoadAssembliesFromByteArrays:透過的なメソッドにおいてAssembly.Load methodを使用するバイト配列からのアセンブリのロードの禁止

Type Link Demands Require Inheritance Demands

OPT.CSHARP.TypeLinkDemandsRequireInheritanceDemands 

TypeLinkDemandsRequireInheritanceDemands:リンク要求で保護された公開型における継承要求の必要性

Unchecked Return Value

OPT.CSHARP.UncheckedReturnValue 

UncheckedReturnValue:未チェックの戻り値

Unchecked Input In Loop Condition

OPT.CSHARP.UncheckedInputInLoopCondition 

UncheckedInputInLoopCondition:ループ条件における未チェックの入力

Unused Private Method 

OPT.CSHARP.UnusedPrivateMethod 

UnusedPrivateMethod:未使用のprivateメソッドとコンストラクタの回避

Do Not Expose Fields In Secured Type

OPT.CSHARP.Csharp.DoNotExposeFieldsInSecuredType 

DoNotExposeFieldsInSecuredType:セキュリティで保護されているpublic型における公開フィールドの宣言の禁止

Review Suppress Unmanaged Code Security Usage

OPT.CSHARP.Csharp.ReviewSuppressUnmanagedCodeSecurityUsage 

ReviewSuppressUnmanagedCodeSecurityUsage:「SuppressUnmanagedCodeSecurity」属性の使用禁止

MVC Remove Version Header

OPT.CSHARP.MVCRemoveVersionHeader 

MVCRemoveVersionHeader:HTTPヘッダからのASP.NET MVCバージョンの削除

P Invokes Should Not Be Safe Critical

OPT.CSHARP.PInvokesShouldNotBeSafeCritical 

PInvokesShouldNotBeSafeCritical:P/Invoke宣言でのSecuritySafeCriticalAttribute属性の使用禁止

Hardcoded Credential

OPT.CSHARP.SEC.HardcodedCredential 

HardcodedCredential:ハードコードされた資格情報の使用

Hardcoded Network Address

OPT.CSHARP.SEC.HardcodedNetworkAddress 

HardcodedNetworkAddress:ネットワーク アドレスのハードコード禁止

Plaintext Storage Of Password

OPT.CSHARP.SEC.PlaintextStorageOfPassword 

PlaintextStorageOfPassword:パスワードの平文保存

Serializable Class Containing Sensitive Data

OPT.CSHARP.SEC.SerializableClassContainingSensitiveData 

SerializableClassContainingSensitiveData:機密データを含むシリアライズ可能クラスの検出

Secured Types Should Not Expose Fields

OPT.CSHARP.SecuredTypesShouldNotExposeFields 

SecuredTypesShouldNotExposeFields:Link Demandsで保護された型におけるフィールド公開の禁止

Secure Serialization Constructors

OPT.CSHARP.SecureSerializationConstructors 

SecureSerializationConstructors:セキュリティ要求によるシリアライズコンストラクタの保護

Transparency Annotations Should Not Conflict

OPT.CSHARP.TransparencyAnnotationsShouldNotConflict 

TransparencyAnnotationsShouldNotConflict:型のセキュリティ属性において、それに含まれるメンバーのセキュリティ属性と同じ透過性を持つことが必要