以下のルールは .NET Core プロジェクトでサポートされています。
- BD.API.EQNULL - Object.equals(Object) の実装が null 値を適切に処理していることを確認する
- BD.API.EQREFL - Object.equals(Object) の実装が再帰的であることを確認する
- BD.CO.ITMOD - コレクションを反復処理中に変更しない
- BD.EXCEPT.AN - ArgumentNullException を避ける
- BD.EXCEPT.NR - NullReferenceException を避ける
- BD.PB.ARRAY - 配列の境界を超えてアクセスしてはならない
- BD.PB.CC - 常に同じ値に評価される条件式を避ける
- BD.PB.CHECKRET - 非 void メソッドの戻り値を必ずチェックする
- BD.PB.DEREF - null チェックの前に間接参照しない
- BD.PB.DISP - 破棄されたリソースを使用しない
- BD.PB.EVIPT -呼び出しパラメーターの型をデリゲートの定義に一致させる
- BD.PB.FIN - ファイナライザでマネージド リソースを使用しない
- BD.PB.INTOVERF - 整数のオーバーフローを避ける
- BD.PB.NOTEXPLINIT - 明示的に初期化する前の使用を避ける
- BD.PB.POVR - 使用前にメソッド パラメーターを上書きすることを避ける
- BD.PB.SBONE - StringBuilder オブジェクトを適切に使用する
- BD.PB.STRNULL - 文字列に null を付加しない
- BD.PB.SWITCH - switch 文には到達できないブランチがあってはならない
- BD.PB.UGHC - ハッシュ コードが同一であることを根拠として等価であると判断してはならない
- BD.PB.VOVR - 未使用の値を避ける
- BD.PB.ZERO - ゼロによる除算を避ける
- BD.RES.LEAKS - リソースが割り当て解除されていることを確認する
- BD.SECURITY.AUTH - 認証に影響を与える可能性がある信頼性のない入力を避ける
- BD.SECURITY.CUSTOM - セキュリティ脆弱性を防ぐ (カスタム ルール)
- BD.SECURITY.SALT - ランダムな salt が使用されていることを確認する
- BD.SECURITY.SENS - 機密データの公開を防止する
- BD.SECURITY.TDCMD -コマンド インジェクションから防御する
- BD.SECURITY.TDFNAMES - ファイル名インジェクションから防御する
- BD.SECURITY.TDINPUT - フォーマット文字列からサニタイズされていないユーザー入力を除外する
- BD.SECURITY.TDLDAP - LDAP インジェクションから防御する
- BD.SECURITY.TDLOG - ログの偽造から防御する
- BD.SECURITY.TDNET - ネットワーク リソース インジェクションから防御する
- BD.SECURITY.TDRESP - HTTP レスポンス分割から防御する
- BD.SECURITY.TDRFL - Reflection インジェクションから防御する
- BD.SECURITY.TDSQL - SQL クエリー インジェクションから防御する
- BD.SECURITY.TDSQLC - SQL 接続インジェクションから防御する
- BD.SECURITY.TDXSS - XSS 脆弱性から防御する
- BD.SECURITY.USXRS - セキュアな XmlResolver プロパティでオブジェクトを使用する
- BD.TRS.DIFCS - 変数は単一のクリティカル セクションのコンテキストで使用するべきである
- BD.TRS.INSTLOCK - 共有の静的データを保護するためにインスタンス ロックを使用しない
- BD.TRS.MUTEX - 未解放の mutex を放棄しない
- BD.TRS.ORDER - 異なる順序でロックを獲得しない
- BRM.CMT.MSC - メンバーにはコメントを付けるべきである
- BRM.CMT.TSC - 型にはコメントを付けるべきである
- BRM.HBCM - 基底クラスのメソッドを隠蔽することを避ける
- BRM.HBCP - 基底クラスのプロパティを隠蔽することを避ける
- BRM.LINUPPERCASE - long 型整数定数を表すには 'l' ではなく 'L' を使用する
- BRM.SFH - 必ず著作権情報などの適切なファイル ヘッダーを記述する
- BRM.SFT - タブ/インデントにはスペースを使用する
- CDD.DUPC - コードの重複を避ける
- CDD.DUPM - メソッドの重複を避ける
- CDD.DUPS - 文字列リテラルの重複を避ける
- CDD.DUPT - 型の重複を避ける
- CS.BRM.AIBA - as の前に is を使用しない
- CS.BRM.BEB - 空のブロック ステートメントを避ける
- CS.BRM.CCB - if および else の本文を必ず括弧で囲む
- CS.BRM.CPEB - 内容が空の checked、unchecked、fixed および unsafe 文を避ける
- CS.BRM.ES - 空の文字列には string.Empty を使用する
- CS.BRM.ETK - 頭文字が大文字のメンバーにアクセスする場合、明示的に this キーワードを使用する
- CS.BRM.ICB - 反復文の本文を必ず括弧で囲む
- CS.BRM.IDOU - 他の式の中でインクリメント/デクリメント演算子を使用しない
- CS.BRM.IEB - 内容が空の初期化文を避ける
- CS.BRM.KFATNC - ファイル名と型名の一貫性を保持する
- CS.BRM.RFINE - 大きな if 句と共に return 文のある小さな else 句を使用しない
- CS.BRM.SCHR - C# のコードでは Strings.Chr() および Strings.ChrW() メソッドを使用しない
- CS.BRM.SWDEFLAST - switch 文の最後の case として default を配置する
- CS.BRM.UCB - using 文の本文を必ず括弧で囲む
- CS.BRM.UCO - 条件演算子 ('?') ではなく、null 結合演算子 ('??') を使用する
- CS.CDD.DUPU - using 文の重複を避ける
- CS.CMUG.PRU.FSPP - プロパティ アクセサーの標準パターンに従う
- CS.EU.VZS - すべての列挙型に値が 0 のメンバーがあることを確認する
- CS.INTER.ITT - 文字列リテラルを国際化するべきである
- CS.MLC - 非常に大きいメソッドを使用しない
- CS.NG.VAR.PNCFV - メソッドの変数および定数の適切な命名規則に従う
- CS.OOM.MI - 保守性指標を指定した値以上に保つ
- CS.PB.ANIL - 繰り返し不可能なループを避ける
- CS.PB.AWC - 条件の中で代入しない
- CS.PB.BITBOOL - オペランドがブール型の場合はビット演算子を使用しない
- CS.PB.CCA - コンストラクター引数への混乱する代入を避ける
- CS.PB.CEB - 内容が空の条件文を避ける
- CS.PB.CNFA - as 演算子を使用したら null チェックを行う
- CS.PB.DEFSWITCH - 各 switch 文に default: を用意する
- CS.PB.EEB - 内容が空の try、catch、finally および using 文を避ける
- CS.PB.FPLI - ループのインデックスとして浮動小数点型の変数を使用しない
- CS.PB.IDNE - 効果のないインクリメント文およびデクリメント文を避ける
- CS.PB.IEB - 内容が空の反復文を避ける
- CS.PB.IVFLC - for ループの条件で初期化子の変数を使用する
- CS.PB.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する
- CS.PB.MCO - '?:' 演算子が誤って使用されていないかどうかを確認する
- CS.PB.NACC - アクセスできないクラスおよび構造体を避ける
- CS.PB.NSIVFLB - for ループの初期化子変数を for ループの本文で変更しない
- CS.PB.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない
- CS.PB.PUO - 単項演算子 + を使用しない
- CS.PB.USC.CC - 条件内の到達できないコードを避ける
- CS.PB.USC.UC - 到達できないコードを避ける
- CS.PB.VTNV - 値型と null を比較してはならない
- CS.PB.WIBS - ブロックのないステートメントを誤ってインデントしない
- CS.PE.VFFP - FileDialog フィルタ パターンを検証する
- CS.PFEL - for ループではなく foreach ループを使用する
- CS.PROTC - const ではなく readonly を使用する
- CS.SC - 単純式だけをキャストする
- CS.SEC.AUK - 'unsafe' キーワードを避ける
- CS.SERIAL.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
- CS.SERIAL.SOIS - シリアライズ可能ではないオブジェクトをセッションに格納しない
- CS.SERIAL.UIS - 標準パターンを使用して ISerializable を実装する
- CS.TRS.LCB - lock 文の本文を必ず括弧で囲む
- CS.TRS.LEB - 内容が空の lock 文を避ける
- CS.USO - using 文をアルファベット順に記述する
- CT.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
- CT.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
- CWE.119.ARRAY - 配列の境界を超えてアクセスしてはならない
- CWE.120.AUK - 'unsafe' キーワードを避ける
- CWE.125.ARRAY - 配列の境界を超えてアクセスしてはならない
- CWE.129.ARRAY - 配列の境界を超えてアクセスしてはならない
- CWE.131.AUK - 'unsafe' キーワードを避ける
- CWE.134.TDINPUT - フォーマット文字列からサニタイズされていないユーザー入力を除外する
- CWE.190.AIWIL - ループでのインデクサーのラップアラウンドを避ける
- CWE.190.INTOVERF - 整数のオーバーフローを避ける
- CWE.191.AIWIL - ループでのインデクサーのラップアラウンドを避ける
- CWE.191.INTOVERF - 整数のオーバーフローを避ける
- CWE.197.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
- CWE.20.ARRAY - 配列の境界を超えてアクセスしてはならない
- CWE.20.TDCMD -コマンド インジェクションから防御する
- CWE.20.TDFNAMES - ファイル名インジェクションから防御する
- CWE.20.TDNET - ネットワーク リソース インジェクションから防御する
- CWE.20.TDRESP - HTTP レスポンス分割から防御する
- CWE.20.TDSQL - SQL クエリー インジェクションから防御する
- CWE.20.TDSQLC - SQL 接続インジェクションから防御する
- CWE.20.TDXSS - XSS 脆弱性から防御する
- CWE.200.SENS - 機密データの公開を防止する
- CWE.209.SENS - 機密データの公開を防止する
- CWE.22.TDFNAMES - ファイル名インジェクションから防御する
- CWE.250.AUEP - 昇格された権限の使用を避ける
- CWE.252.CHECKRET - 非 void メソッドの戻り値を必ずチェックする
- CWE.285.TDSQL - SQL クエリー インジェクションから防御する
- CWE.287.AAM - AAMMVC Core に認可サービスを追加する
- CWE.287.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
- CWE.287.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
- CWE.287.UAAMC - 認可属性がコントローラーと一致していることを確認する
- CWE.295.DNICV - SSL 証明書の検証を無効化しない
- CWE.307.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
- CWE.327.ACCA - カスタム暗号化アルゴリズムの使用を避ける
- CWE.329.ACCA - カスタム暗号化アルゴリズムの使用を避ける
- CWE.350.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
- CWE.352.TDRESP - HTTP レスポンス分割から防御する
- CWE.352.VAFT - POST メソッドでは anti-forgery 属性を使用する
- CWE.362.DIFCS - 変数は単一のクリティカル セクションのコンテキストで使用するべきである
- CWE.369.ZERO - ゼロによる除算を避ける
- CWE.391.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
- CWE.396.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
- CWE.397.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
- CWE.400.LEAKS - リソースが割り当て解除されていることを確認する
- CWE.401.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする
- CWE.416.DISP - 破棄されたリソースを使用しない
- CWE.416.FIN - ファイナライザでマネージド リソースを使用しない
- CWE.434.TDFNAMES - ファイル名インジェクションから防御する
- CWE.456.NOTEXPLINIT - 明示的に初期化する前の使用を避ける
- CWE.457.NOTEXPLINIT - 明示的に初期化する前の使用を避ける
- CWE.470.TDRFL - Reflection インジェクションから防御する
- CWE.476.CNFA - as 演算子を使用したら null チェックを行う
- CWE.476.DEREF - null チェックの前に間接参照しない
- CWE.476.NR - NullReferenceException を避ける
- CWE.480.PUO - 単項演算子 + を使用しない
- CWE.481.AWC - 条件の中で代入しない
- CWE.494.IREC - 完全性のチェックを行わずに外部コードを実行しない
- CWE.502.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
- CWE.502.UIS - 標準パターンを使用して ISerializable を実装する
- CWE.546.TODO - コメントにタスク タグが含まれていないことを確認する
- CWE.561.UC - 到達できないコードを避ける
- CWE.563.POVR - 使用前にメソッド パラメーターを上書きすることを避ける
- CWE.563.VOVR - 未使用の値を避ける
- CWE.570.CC - 常に同じ値に評価される条件式を避ける
- CWE.571.CC - 常に同じ値に評価される条件式を避ける
- CWE.595.REVT - ReferenceEquals() を値型で使用しない
- CWE.601.TDNET - ネットワーク リソース インジェクションから防御する
- CWE.611.PDTDP - DTD 処理を防ぐ
- CWE.611.USXRS - セキュアな XmlResolver プロパティでオブジェクトを使用する
- CWE.613.ISE - セッション有効期限が適切であるようにする
- CWE.662.DIFCS - 変数は単一のクリティカル セクションのコンテキストで使用するべきである
- CWE.676.APDM - 潜在的に危険なメソッドの使用を避ける
- CWE.681.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
- CWE.704.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
- CWE.759.SALT - ランダムな salt が使用されていることを確認する
- CWE.760.SALT - ランダムな salt が使用されていることを確認する
- CWE.77.TDCMD -コマンド インジェクションから防御する
- CWE.770.LEAKS - リソースが割り当て解除されていることを確認する
- CWE.772.LEAKS - リソースが割り当て解除されていることを確認する
- CWE.78.TDCMD -コマンド インジェクションから防御する
- CWE.780.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
- CWE.787.ARRAY - 配列の境界を超えてアクセスしてはならない
- CWE.79.TDRESP - HTTP レスポンス分割から防御する
- CWE.79.TDXSS - XSS 脆弱性から防御する
- CWE.80.TDRESP - HTTP レスポンス分割から防御する
- CWE.807.AUTH - 認証に影響を与える可能性がある信頼性のない入力を避ける
- CWE.827.PDTDP - DTD 処理を防ぐ
- CWE.833.ORDER - 異なる順序でロックを獲得しない
- CWE.835.IVFLC - for ループの条件で初期化子の変数を使用する
- CWE.835.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する
- CWE.835.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない
- CWE.838.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
- CWE.862.UAA - ページおよびコントローラーで authorization 属性を使用する
- CWE.863.AAM - AAMMVC Core に認可サービスを追加する
- CWE.863.AUTH - 認証に影響を与える可能性がある信頼性のない入力を避ける
- CWE.863.UAAMC - 認可属性がコントローラーと一致していることを確認する
- CWE.88.TDCMD -コマンド インジェクションから防御する
- CWE.89.TDSQL - SQL クエリー インジェクションから防御する
- CWE.89.TDSQLC - SQL 接続インジェクションから防御する
- CWE.90.TDLDAP - LDAP インジェクションから防御する
- CWE.99.TDFNAMES - ファイル名インジェクションから防御する
- CWE.99.TDNET - ネットワーク リソース インジェクションから防御する
- EXCEPT.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
- EXCEPT.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
- IFD.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする
- IFD.IDDR - 破棄可能なリソースを使用する型では IDisposable を実装する
- INTER.RI - *.resx ファイルのすべての文字列を必ず国際化する
- OPU.CPTEQ - Equals(Object) メソッドのパラメーターの型を比較する
- OPU.REVT - ReferenceEquals() を値型で使用しない
- OWASP2017.A1.TDCMD -コマンド インジェクションから防御する
- OWASP2017.A1.TDFNAMES - ファイル名インジェクションから防御する
- OWASP2017.A1.TDINPUT - フォーマット文字列からサニタイズされていないユーザー入力を除外する
- OWASP2017.A1.TDLDAP - LDAP インジェクションから防御する
- OWASP2017.A1.TDNET - ネットワーク リソース インジェクションから防御する
- OWASP2017.A1.TDRFL - Reflection インジェクションから防御する
- OWASP2017.A1.TDSQL - SQL クエリー インジェクションから防御する
- OWASP2017.A1.TDSQLC - SQL 接続インジェクションから防御する
- OWASP2017.A10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
- OWASP2017.A2.ISE - セッション有効期限が適切であるようにする
- OWASP2017.A2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
- OWASP2017.A3.ACCA - カスタム暗号化アルゴリズムの使用を避ける
- OWASP2017.A3.SALT - ランダムな salt が使用されていることを確認する
- OWASP2017.A3.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
- OWASP2017.A4.PDTDP - DTD 処理を防ぐ
- OWASP2017.A4.USXRS - セキュアな XmlResolver プロパティでオブジェクトを使用する
- OWASP2017.A5.AAM - AAMMVC Core に認可サービスを追加する
- OWASP2017.A5.AUEP - 昇格された権限の使用を避ける
- OWASP2017.A5.UAA - ページおよびコントローラーで authorization 属性を使用する
- OWASP2017.A5.UAAMC - 認可属性がコントローラーと一致していることを確認する
- OWASP2017.A5.VAFT - POST メソッドでは anti-forgery 属性を使用する
- OWASP2017.A6.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
- OWASP2017.A6.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
- OWASP2017.A6.SENS - 機密データの公開を防止する
- OWASP2017.A7.TDRESP - HTTP レスポンス分割から防御する
- OWASP2017.A7.TDXSS - XSS 脆弱性から防御する
- OWASP2017.A8.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
- OWASP2017.A8.UIS - 標準パターンを使用して ISerializable を実装する
- PB.ACDE - Application.DoEvents() メソッドを呼び出さない
- PB.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
- PB.CFF - 複合書式機能の引数の数を検証する
- PB.DNCF - 浮動小数点型の等価を比較しない
- PB.EMPTYMETHODS - 空のメソッドを避ける
- PB.II.TODO - コメントにタスク タグが含まれていないことを確認する
- PB.INOE - String.IsNullOrEmpty を使用して string が null または empty かどうかをチェックする
- PB.STATICFLD - static でないメソッドから static フィールドに書き込まない
- PB.THROWFIN - finally ブロックで throw 文を使用しない
- PCIDSS32.651.TDCMD -コマンド インジェクションから防御する
- PCIDSS32.651.TDFNAMES - ファイル名インジェクションから防御する
- PCIDSS32.651.TDINPUT - フォーマット文字列からサニタイズされていないユーザー入力を除外する
- PCIDSS32.651.TDLDAP - LDAP インジェクションから防御する
- PCIDSS32.651.TDNET - ネットワーク リソース インジェクションから防御する
- PCIDSS32.651.TDRFL - Reflection インジェクションから防御する
- PCIDSS32.651.TDSQL - SQL クエリー インジェクションから防御する
- PCIDSS32.651.TDSQLC - SQL 接続インジェクションから防御する
- PCIDSS32.6510.ISE - セッション有効期限が適切であるようにする
- PCIDSS32.6510.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
- PCIDSS32.652.AUK - 'unsafe' キーワードを避ける
- PCIDSS32.653.ACCA - カスタム暗号化アルゴリズムの使用を避ける
- PCIDSS32.653.SALT - ランダムな salt が使用されていることを確認する
- PCIDSS32.653.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
- PCIDSS32.655.CHECKRET - 非 void メソッドの戻り値を必ずチェックする
- PCIDSS32.655.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
- PCIDSS32.655.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
- EXCEPT.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
- PCIDSS32.655.SENS - 機密データの公開を防止する
- PCIDSS32.657.TDRESP - HTTP レスポンス分割から防御する
- PCIDSS32.657.TDXSS - XSS 脆弱性から防御する
- PCIDSS32.658.AAM - AAMMVC Core に認可サービスを追加する
- PCIDSS32.658.AUEP - 昇格された権限の使用を避ける
- PCIDSS32.658.UAA - ページおよびコントローラーで authorization 属性を使用する
- PCIDSS32.658.UAAMC - 認可属性がコントローラーと一致していることを確認する
- PCIDSS32.659.TDRESP - HTTP レスポンス分割から防御する
- PCIDSS32.659.VAFT - POST メソッドでは anti-forgery 属性を使用する
- SEC.ACCA - カスタム暗号化アルゴリズムの使用を避ける
- SEC.ACWNS - 名前空間のないクラスがあるべきではない
- SEC.AIWIL - ループでのインデクサーのラップアラウンドを避ける
- SEC.APDM - 潜在的に危険なメソッドの使用を避ける
- SEC.AUEP - 昇格された権限の使用を避ける
- SEC.IREC - 完全性のチェックを行わずに外部コードを実行しない
- SEC.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
- SEC.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
- SEC.WEB.AAM - AAMMVC Core に認可サービスを追加する
- SEC.WEB.DNICV - SSL 証明書の検証を無効化しない
- SEC.WEB.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
- SEC.WEB.ISE - セッション有効期限が適切であるようにする
- SEC.WEB.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
- SEC.WEB.UAA - ページおよびコントローラーで authorization 属性を使用する
- SEC.WEB.UAAMC - 認可属性がコントローラーと一致していることを確認する
- SEC.WEB.VAFT - POST メソッドでは anti-forgery 属性を使用する
- SEC.XXE.PDTDP - DTD 処理を防ぐ
- SERIAL.XML.SOAFAP - XmlElementAttribute で使用される型と、シリアライズされるフィールド/プロパティの型が必ず互換性を持つようにする
- VB.BRM.ES - 空の文字列には string.Empty を使用する
- VB.BRM.PNPT - プリミティブ型に対して推奨される名前を使用する
- VB.PB.DEFSWITCH - 各 Select Case 文には Case Else を用意する