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