以下のルールは CQA モードで有効にできます。
APSC_DV.001460.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
APSC_DV.001460.UIS - 標準パターンを使用して ISerializable を実装する
APSC_DV.000160.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.000160.RSAKS - 2048 ビット以上の RSA キーを使用する
APSC_DV.000160.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.000170.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.000170.RSAKS - 2048 ビット以上の RSA キーを使用する
APSC_DV.000170.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.000460.UAA - ページおよびコントローラーで authorization 属性を使用する
APSC_DV.000500.AUEP - 昇格された権限の使用を避ける
APSC_DV.000510.ISE - セッション有効期限が適切であるようにする
APSC_DV.000510.UAA - ページおよびコントローラーで authorization 属性を使用する
APSC_DV.000530.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
APSC_DV.000650.ALSI - 機密情報をログに記録しない
APSC_DV.001460.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.001460.ALSI - 機密情報をログに記録しない
APSC_DV.001460.AUEP - 昇格された権限の使用を避ける
APSC_DV.001460.DNICV - SSL 証明書の検証を無効化しない
APSC_DV.001460.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
APSC_DV.001460.IREC - 完全性のチェックを行わずに外部コードを実行しない
APSC_DV.001460.ISE - セッション有効期限が適切であるようにする
APSC_DV.001460.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする。
APSC_DV.001460.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
APSC_DV.001460.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
APSC_DV.001460.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
APSC_DV.001460.PBRTE - 必ず実行コマンドへの絶対パスを指定する
APSC_DV.001460.PDTDP - DTD 処理を防ぐ
APSC_DV.001460.RSAKS - 2048 ビット以上の RSA キーを使用する
APSC_DV.001460.RSFSS - SecureString から文字列を再作成しない
APSC_DV.001460.SDE - 例外に機密データを含めない
APSC_DV.001460.SSFP - パスワードには String ではなく SecureString を使用する
APSC_DV.001460.UAA - ページおよびコントローラーで authorization 属性を使用する
APSC_DV.001460.UAAMC - 認可属性がコントローラーと一致していることを確認する
APSC_DV.001460.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.001460.VAFT - POST メソッドでは anti-forgery 属性を使用する
APSC_DV.001460.VLT - 使用する前にショートカットのターゲット パスを検証する
APSC_DV.001660.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.001860.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.001860.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.002000.ISE - セッション有効期限が適切であるようにする
APSC_DV.002010.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.002010.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.002290.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.002290.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
APSC_DV.002350.ACCA - カスタム暗号化アルゴリズムの使用を避ける
APSC_DV.002350.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
BRM.APNFT - スレッドには必ず名前を付ける
BRM.CMT.MSC - メンバーにはコメントを付けるべきである
BRM.CMT.TSC - 型にはコメントを付けるべきである
BRM.HBCM - 基底クラスのメソッドを隠蔽することを避ける
BRM.HBCP - 基底クラスのプロパティを隠蔽することを避ける
BRM.MLL - 1 行の桁数は定義済みのパラメーター値を超えてはならない
CMUG.MU.AUPM - 未使用の private メソッドを避ける
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.SCHR - C# のコードでは Strings.Chr() および Strings.ChrW() メソッドを使用しない
CS.BRM.SWDEFLAST - switch 文の最後の case として default を配置する
CS.BRM.UCB - using 文の本文を必ず括弧で囲む
CS.CDD.DUPU - using 文の重複を避ける
CS.EU.VZS - すべての列挙型に値が 0 のメンバーがあることを確認する
CS.INTER.ITT - 文字列リテラルを国際化するべきである
CS.NG.VAR.PNCFV - メソッドの変数および定数の適切な命名規則に従う
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.PROTC - const ではなく readonly を使用する
CS.SEC.AUK - 'unsafe' キーワードを避ける
CS.SEC.RSFSS - SecureString から文字列を再作成しない
CS.SEC.SSFP - パスワードには String ではなく SecureString を使用する
CS.SERIAL.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
CS.SERIAL.UIS - 標準パターンを使用して ISerializable を実装する
CS.TRS.LCB - lock 文の本文を必ず括弧で囲む
CS.TRS.LEB - 内容が空の lock 文を避ける
CT.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CT.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.120.AUK - 'unsafe' キーワードを避ける
CWE.131.AUK - 'unsafe' キーワードを避ける
CWE.1321.SDE - 例外に機密データを含めない
CWE.1386.VLT - 使用する前にショートカットのターゲット パスを検証する
CWE.190.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける
CWE.190.AIWIL - ループでのインデクサーのラップアラウンドを避ける
CWE.191.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける
CWE.191.AIWIL - ループでのインデクサーのラップアラウンドを避ける
CWE.197.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.200.SDE - 例外に機密データを含めない
CWE.209.SDE - 例外に機密データを含めない
CWE.250.AUEP - 昇格された権限の使用を避ける
CWE.269.UAAMC - 認可属性がコントローラーと一致していることを確認する
CWE.287.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
CWE.287.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
CWE.287.UAAMC - 認可属性がコントローラーと一致していることを確認する
CWE.295.DNICV - SSL 証明書の検証を無効化しない
CWE.307.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
CWE.316.RSFSS - "SecureString から文字列を再作成しない
CWE.316.SSFP - パスワードには String ではなく SecureString を使用する
CWE.326.RSAKS - 2048 ビット以上の RSA キーを使用する
CWE.327.ACCA - カスタム暗号化アルゴリズムの使用を避ける
CWE.329.ACCA - カスタム暗号化アルゴリズムの使用を避ける
CWE.350.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
CWE.352.VAFT - POST メソッドでは anti-forgery 属性を使用する
CWE.391.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
CWE.396.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
CWE.397.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
CWE.426.PBRTE - 必ず実行コマンドへの絶対パスを指定する
CWE.427.DNICV - SSL 証明書の検証を無効化しない
CWE.476.CNFA - as 演算子を使用したら null チェックを行う
CWE.480.PUO - 単項演算子 + を使用しない
CWE.481.AWC - 条件の中で代入しない
CWE.494.IREC - 完全性のチェックを行わずに外部コードを実行しない
CWE.502.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
CWE.502.UIS - 標準パターンを使用して ISerializable を実装する
CWE.522.VLT - 使用する前にショートカットのターゲット パスを検証する
CWE.532.ALSI - 機密情報をログに記録しない
CWE.561.UC - 到達できないコードを避ける
CWE.59.VLT - 使用する前にショートカットのターゲット パスを検証する
CWE.595.REVT - ReferenceEquals() を値型で使用しない
CWE.611.PDTDP - DTD 処理を防ぐ
CWE.613.ISE - セッション有効期限が適切であるようにする
CWE.617.ATA - Do not use the Trace.Assert() method in production code
CWE.64.VLT - 使用する前にショートカットのターゲット パスを検証する
CWE.676.APDM - 潜在的に危険なメソッドの使用を避ける
CWE.681.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.770.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない
CWE.780.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
CWE.827.PDTDP - DTD 処理を防ぐ
CWE.835.IVFLC - for ループの条件で初期化子の変数を使用する
CWE.835.IVFLI - for ループのイテレーター セクションで初期化子変数を使用する
CWE.835.NSIVFLN - 複数のネストされた for ループ文で同じ変数をインクリメントまたはデクリメントしない
CWE.838.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
CWE.862.UAA - ページおよびコントローラーで authorization 属性を使用する
CWE.863.UAAMC - 認可属性がコントローラーと一致していることを確認する
EXCEPT.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
EXCEPT.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
IFD.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする
IFD.IDDR - 破棄可能なリソースを使用する型では IDisposable を実装する
OPU.CPTEQ - Equals(Object) メソッドのパラメーターと null を比較する
OPU.CPTEQ - Equals(Object) メソッドのパラメーターの型を比較する
OPU.REVT - ReferenceEquals() を値型で使用しない
OWASP_ASVS_403.V1_5_2.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
OWASP_ASVS_403.V1_5_2.UIS - 標準パターンを使用して ISerializable を実装する
OWASP_ASVS_403.V5_5_1.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
OWASP_ASVS_403.V5_5_1.UIS - 標準パターンを使用して ISerializable を実装する
OWASP2017.A10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
OWASP2017.A2.ISE - セッション有効期限が適切であるようにする
OWASP2017.A2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
OWASP2017.A3.ACCA - カスタム暗号化アルゴリズムの使用を避ける
OWASP2017.A3.ALSI - 機密情報をログに記録しない
OWASP2017.A3.DNICV - SSL 証明書の検証を無効化しない
OWASP2017.A3.RSFSS - SecureString から文字列を再作成しない
OWASP2017.A3.SDE - 例外に機密データを含めない
OWASP2017.A3.SSFP - パスワードには String ではなく SecureString を使用する
OWASP2017.A3.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
OWASP2017.A4.PDTDP - DTD 処理を防ぐ
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.A8.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
OWASP2017.A8.UIS - 標準パターンを使用して ISerializable を実装する
OWASP2019.API10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
OWASP2019.API2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
OWASP2019.API2.RSFSS - SecureString から文字列を再作成しない
OWASP2019.API2.SSFP - パスワードには String ではなく SecureString を使用する
OWASP2019.API3.ACCA - カスタム暗号化アルゴリズムの使用を避ける
OWASP2019.API3.ALSI - 機密情報をログに記録しない
OWASP2019.API3.ATA - 運用コードで Trace.Assert() メソッドを使用しない
OWASP2019.API3.SDE - 例外に機密データを含めない
OWASP2019.API3.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
OWASP2019.API4.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない
OWASP2019.API5.ISE - セッション有効期限が適切であるようにする
OWASP2019.API5.UAA - ページおよびコントローラーで authorization 属性を使用する
OWASP2019.API5.UAAMC - 認可属性がコントローラーと一致していることを確認する
OWASP2019.API7.DNICV - SSL 証明書の検証を無効化しない
OWASP2019.API7.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
OWASP2019.API7.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
OWASP2019.API7.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
OWASP2019.API8.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
OWASP2019.API8.AUK - 'unsafe' キーワードを避ける
OWASP2019.API8.IREC - 完全性のチェックを行わずに外部コードを実行しない
OWASP2019.API8.PBRTE - 必ず実行コマンドへの絶対パスを指定する
OWASP2019.API8.PDTDP - DTD 処理を防ぐ
OWASP2021.A1.AUEP - 昇格された権限の使用を避ける
OWASP2021.A1.DNICV - SSL 証明書の検証を無効化しない
OWASP2021.A1.UAA - ページおよびコントローラーで authorization 属性を使用する
OWASP2021.A1.UAAMC - 認可属性がコントローラーと一致していることを確認する
OWASP2021.A1.VAFT - POST メソッドでは anti-forgery 属性を使用する
OWASP2021.A1.VLT - 使用する前にショートカットのターゲット パスを検証する
OWASP2021.A2.ACCA - カスタム暗号化アルゴリズムの使用を避ける
OWASP2021.A2.RSAKS - 2048 ビット以上の RSA キーを使用する
OWASP2021.A2.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
OWASP2021.A4.RSFSS - SecureString から文字列を再作成しない
OWASP2021.A4.SDE - 例外に機密データを含めない
OWASP2021.A4.SSFP - パスワードには String ではなく SecureString を使用する
OWASP2021.A5.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
OWASP2021.A5.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
OWASP2021.A5.PDTDP - DTD 処理を防ぐ
OWASP2021.A7.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
OWASP2021.A7.ISE - セッション有効期限が適切であるようにする
OWASP2021.A7.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
OWASP2021.A8.IIDC - NonSerialized フィールドを持つクラスで IDeserializationCallback を実装する
OWASP2021.A8.IREC - 完全性のチェックを行わずに外部コードを実行しない
OWASP2021.A8.PBRTE - 必ず実行コマンドへの絶対パスを指定する
OWASP2021.A8.UIS - 標準パターンを使用して ISerializable を実装する
OWASP2021.A9.ALSI - 機密情報をログに記録しない
OWASP2021.A9.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
PB.ACDE - Application.DoEvents() メソッドを呼び出さない
PB.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
PB.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける
PB.CFF - 複合書式機能の引数の数を検証する
PB.DNCF - 浮動小数点型の等価を比較しない
PB.EMPTYMETHODS - 空のメソッドを避ける
PB.INOE - String.IsNullOrEmpty を使用して string が null または empty かどうかをチェックする
PB.STATICFLD - static でないメソッドから static フィールドに書き込まない
PB.THROWFIN - finally ブロックで throw 文を使用しない
PCIDSS32.6510.ISE - セッション有効期限が適切であるようにする
PCIDSS32.6510.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
PCIDSS32.652.AUK - 'unsafe' キーワードを避ける
PCIDSS32.653.ACCA - カスタム暗号化アルゴリズムの使用を避ける
PCIDSS32.653.RSFSS - "SecureString から文字列を再作成しない
PCIDSS32.653.SSFP - パスワードには String ではなく SecureString を使用する
PCIDSS32.653.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
PCIDSS32.654.RSFSS - "SecureString から文字列を再作成しない
PCIDSS32.654.SSFP - パスワードには String ではなく SecureString を使用する
PCIDSS32.655.ATA - 運用コードで Trace.Assert() メソッドを使用しない
PCIDSS32.655.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
PCIDSS32.655.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
PCIDSS32.655.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
PCIDSS32.658.AUEP - 昇格された権限の使用を避ける
PCIDSS32.658.PBRTE - 必ず実行コマンドへの絶対パスを指定する
PCIDSS32.658.UAA - ページおよびコントローラーで authorization 属性を使用する
PCIDSS32.658.UAAMC - 認可属性がコントローラーと一致していることを確認する
PCIDSS32.659.VAFT - POST メソッドでは anti-forgery 属性を使用する
PCIDSS40.6242.AIWIL - ループでのインデクサーのラップアラウンドを避ける
PCIDSS40.6242.AUK - 'unsafe' キーワードを避ける
PCIDSS40.6243.ACCA - カスタム暗号化アルゴリズムの使用を避ける
PCIDSS40.6243.RSFSS - SecureString から文字列を再作成しない
PCIDSS40.6243.SSFP - パスワードには String ではなく SecureString を使用する
PCIDSS40.6243.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
PCIDSS40.6244.ATA - 運用コードで Trace.Assert() メソッドを使用しない
PCIDSS40.6244.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
PCIDSS40.6244.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
PCIDSS40.6244.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
PCIDSS40.6244.SDE - 例外に機密データを含めない
PCIDSS40.6245.AUEP - 昇格された権限の使用を避ける
PCIDSS40.6245.DNICV - SSL 証明書の検証を無効化しない
PCIDSS40.6245.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
PCIDSS40.6245.ISE - セッション有効期限が適切であるようにする
PCIDSS40.6245.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
PCIDSS40.6245.PBRTE - 必ず実行コマンドへの絶対パスを指定する
PCIDSS40.6245.UAA - ページおよびコントローラーで authorization 属性を使用する
PCIDSS40.6245.UAAMC - 認可属性がコントローラーと一致していることを確認する
SEC.ACCA - カスタム暗号化アルゴリズムの使用を避ける
SEC.ACWNS - 名前空間のないクラスがあるべきではない
SEC.AIWIL - ループでのインデクサーのラップアラウンドを避ける
SEC.ALSI - 機密情報をログに記録しない
SEC.APDM - 潜在的に危険なメソッドの使用を避ける
SEC.ATA - Do not use the Trace.Assert() method in production code
SEC.AUEP - 昇格された権限の使用を避ける
SEC.IREC - 完全性のチェックを行わずに外部コードを実行しない
SEC.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
SEC.PBRTE - 必ず実行コマンドへの絶対パスを指定する
SEC.RSAKS - 2048 ビット以上の RSA キーを使用する
SEC.SDE - 例外に機密データを含めない
SEC.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
SEC.VLT - 使用する前にショートカットのターゲット パスを検証する
SEC.WEB.DNICV - SSL 証明書の検証を無効化しない
SEC.WEB.IIPHEU - セキュリティ上の決定を行う際に逆引き DNS に依存しない
SEC.WEB.ISE - セッション有効期限が適切であるようにする
SEC.WEB.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
SEC.WEB.UAA - ページおよびコントローラーで authorization 属性を使用する
SEC.WEB.UAAMC - 認可属性がコントローラーと一致していることを確認する
SEC.WEB.UHCF - HttpClient オブジェクトを作成することで HttpClient クラスをインスタンス化しない
SEC.WEB.VAFT - POST メソッドでは anti-forgery 属性を使用する
SEC.XXE.PDTDP - DTD 処理を防ぐ
SERIAL.XML.SOAFAP - XmlElementAttribute で使用される型と、シリアライズされるフィールド/プロパティの型が必ず互換性を持つようにする
VB.BRM.ES - 空の文字列には string.Empty を使用する
VB.PB.DEFSWITCH - 各 Select Case 文には Case Else を用意する
VVSG.11_1_B.ALSI - 機密情報をログに記録しない
VVSG.11_3_1_A.UAA - ページおよびコントローラーで authorization 属性を使用する
VVSG.11_3_1_A.UAAMC - 認可属性がコントローラーと一致していることを確認する
VVSG.11_4_A.AUEP - 昇格された権限の使用を避ける
VVSG.11_4_A.UAA - ページおよびコントローラーで authorization 属性を使用する
VVSG.11_5_A.ISE - セッション有効期限が適切であるようにする
VVSG.11_5_C.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
VVSG.13_3_C.RSAKS - 2048 ビット以上の RSA キーを使用する
VVSG.13_3_C.UOWR - RSA アルゴリズム暗号化を使用して OAEP を使用する
VVSG.14_2_G.AUPM - 未使用の private メソッドを避ける
VVSG.14_2_G.NACC - アクセスできないクラスおよび構造体を避ける
VVSG.14_2_G.UC - 到達できないコードを避ける
VVSG.14_2_G.USCCC - 条件内の到達できないコードを避ける
VVSG.2_5_2_A.IREC - 完全性のチェックを行わずに外部コードを実行しない
VVSG.2_5_2_A.VAFT - POST メソッドでは anti-forgery 属性を使用する
VVSG.2_5_2_A.VLT - 使用する前にショートカットのターゲット パスを検証する
VVSG.2_5_4_C.AUK - 'unsafe' キーワードを避ける
VVSG.2_5_4_F.AIOAC - 代入および比較式で整数オーバーフローが発生する可能性を避ける
VVSG.2_5_4_F.AIWIL - ループでのインデクサーのラップアラウンドを避ける
VVSG.2_5_4_I.CNFA - as 演算子を使用したら null チェックを行う
VVSG.2_5_4_J.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする
VVSG.3_1_1_C.MSC - メンバーにはコメントを付けるべきである
VVSG.3_1_1_C.TSC - 型にはコメントを付けるべきである
VVSG.5_2_B.ITT - 文字列リテラルを国際化するべきである
以下のルールは CQA モードで有効化できますが、Visual Basic (.vb) ファイルを解析する場合、または dottest.rulewizard.enforceold
設定が有効化されている場合はサポートされません。
APSC_DV.000460.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001250.AUMS - Millisecond プロパティ値の使用がセキュリティ上の問題につながらないかを検査する
APSC_DV.001250.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001250.AUMS - Millisecond プロパティ値の使用がセキュリティ上の問題につながらないかを検査する
APSC_DV.001270.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001460.DMSC -セキュリティ設定の変更を検査する
APSC_DV.001460.NCNRE - NullReferenceException をキャッチしてはいけない
APSC_DV.001460.SMIII - internal インターフェイスを実装するメソッドをシールする
APSC_DV.001460.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.001660.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.001810.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001820.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001850.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001860.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.001860.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.001940.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.001950.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.001995.INVOKE -同期呼び出しより非同期呼び出しを使用する
APSC_DV.001995.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする
APSC_DV.002010.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002020.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002030.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002040.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002050.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002290.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002310.DMSC -セキュリティ設定の変更を検査する
APSC_DV.002340.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002350.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002360.DMSC -セキュリティ設定の変更を検査する
APSC_DV.002440.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.002440.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する
APSC_DV.002450.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002460.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.002460.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002470.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.002470.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.002480.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
APSC_DV.002520.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない
APSC_DV.002520.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない
APSC_DV.002530.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない
APSC_DV.002530.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない
APSC_DV.002570.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない
APSC_DV.002570.AUIC -信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない
APSC_DV.002590.AUPS - Process.Start() の呼び出しを検査する
APSC_DV.002960.AUPS - Process.Start() の呼び出しを検査する
APSC_DV.003100.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
APSC_DV.003140.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
ARRU.DNUNGIF - 非ジェネリック コレクションを使用してカスタム コレクションを作成してはならない
ARRU.NGLVD - 非ジェネリック コレクション型のローカル変数を宣言してはならない
BRM.BOOLNEGNAME - ブール型を返すプロパティ/メソッドの名前には、否定ではなく肯定を使用する
BRM.COLLPLURALNAME - コレクション/配列型のプロパティ名は複数形を使用する。名前に collection/array を使用しない
BRM.ISPREFIX - boolean を返すメソッドだけに is で始まる名前を付ける
BRM.LONGNAMES - 15 文字以上のクラス、構造体、インターフェイス名を使用しない
CLS.ACAC - プロパティのアクセシビリティとアクセサーのアクセシビリティを同一にする
CLS.CONV - 変換演算子を提供する場合は、代替の変換方法も提供する
CLS.ENTY - 列挙体の基になる型を整数型にする
CLS.NOOO - CLS に準拠する場合は演算子のオーバーロードを使用しない
CLS.NOPT - CLS に準拠する場合は、ポインター型を使用しない
CLS.PRMT - CLS 準拠 プリミティブ型だけを使用する
CLS.TYPR - 型指定された参照を使用してはならない
CMUG.MU.VALRETURN - メソッドまたはプロパティから値を返すのに値型を使用しない
CMUG.PRU.DPAV - nHibernate を使用するクラスから派生するクラスのプロパティを virtual として宣言する
CS.IFD.DNPTHIS - デストラクターまたは dispose メソッドの内側から this への参照を渡してはならない
CS.OOM.CAST2CONCRETE - 具象 Collection 型にキャストしない
CS.PB.INVOKE -同期呼び出しより非同期呼び出しを使用する
CS.SMC - case 文の多すぎる switch 文を避ける
CS.TRS.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする
CWE.330.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
CWE.362.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする
CWE.395.NCNRE - NullReferenceException をキャッチしてはいけない
CWE.829.DMSC -セキュリティ設定の変更を検査する
EXCEPT.NCNRE - NullReferenceException をキャッチしてはいけない
GC.DCGC - 明示的に 'System.GC.Collect()' または 'System.GC.Collect(int)' を呼び出さない
GC.RCCB - 'ClipBounds' の複数回の呼び出し
INTER.TOLOWERTOUPPER - ToLower()、ToUpper() string メソッドを直接使用しない
OOM.LNDM - 1 クラスあたりのデータ メンバーの数を多くしない
OOM.LNMM - 1 クラスあたりのメソッドの数を多くしない
OOM.LNPBD - 1 クラスあたりの public データ メンバーの数を多くしない
OOM.LNPBM - 1 クラスあたりの public メソッドの数を多くしない
OOM.LNPM - 1 メソッドあたりのパラメーターの数を多くしない
OOM.LNPTD - 1 クラスあたりの protected データ メンバーの数を多くしない
OOM.LNPTM - 1 クラスあたりの protected メソッドの数を多くしない
OOM.LNPVD - 1 クラスあたりの privateデータ メンバーの数が多い
OOM.LNPVM - 1 クラスあたりの private メソッドの数を多くしない
OOM.MLCI - クラスの継承レベルを深くしすぎない
OPU.NOREFEQUAL - ReferenceEquals() メソッドをオーバーライドしない
OPU.NOSTATICEQUAL - 静的な Object.Equals() メソッドをオーバーライドしない
OWASP2017.A6.DMSC -セキュリティ設定の変更を検査する
OWASP2017.A6.NCNRE - NullReferenceException をキャッチしてはいけない
OWASP2017.A6.SMIII - internal インターフェイスを実装するメソッドをシールする
OWASP2019.API1.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
OWASP2019.API10.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する
OWASP2019.API7.DMSC -セキュリティ設定の変更を検査する
OWASP2019.API7.NCNRE - NullReferenceException をキャッチしてはいけない
OWASP2019.API7.SMIII - internal インターフェイスを実装するメソッドをシールする
OWASP2019.API8.AUPS - Process.Start() の呼び出しを検査する
OWASP2021.A2.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
OWASP2021.A5.NCNRE - NullReferenceException をキャッチしてはいけない
OWASP2021.A5.SMIII - internal インターフェイスを実装するメソッドをシールする
OWASP2021.A8.DMSC -セキュリティ設定の変更を検査する
OWASP2023.API1.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
OWASP2023.API3.DMSC -セキュリティ設定の変更を検査する
OWASP2023.API3.NCNRE - NullReferenceException をキャッチしてはいけない
OWASP2023.API3.SMIII - internal インターフェイスを実装するメソッドをシールする
OWASP2023.API6.ENFL - 注意を要するメソッドへのすべての呼び出しが記録されるよう保証する
OWASP2023.API8.DMSC -セキュリティ設定の変更を検査する
OWASP2023.API8.NCNRE - NullReferenceException をキャッチしてはいけない
OWASP2023.API8.SMIII - internal インターフェイスを実装するメソッドをシールする
OWASP_ASVS_403.V12_3_6.DMSC - セキュリティ設定の変更を検査する
OWASP_ASVS_403.V1_11_2.LOCKSETGET - プロパティの set または get のどちらかをロックする場合、両方をロックする
PB.CONSOLEWRITE - System.Console 'Write()' または 'WriteLine()' を使用しない
PCIDSS32.655.NCNRE - NullReferenceException をキャッチしてはいけない
PCIDSS40.6244.NCNRE - NullReferenceException をキャッチしてはいけない
SEC.AASV - 環境変数にアクセスしている呼び出しを検査する
SEC.AFNRO - readonly として宣言された配列フィールドを検査する
SEC.ALBM - レイト バインディング メソッドの呼び出しを検査する
SEC.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない
SEC.ASNRF - readonly でない static フィールドを検査し、readonly にすることを検討する
SEC.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない
SEC.AUMS - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
SEC.AUPS - Process.Start() の呼び出しを検査する
SEC.AUSD - System.DateTime 型の変数の使用がセキュリティ ホールの原因にならないかどうかを検査する
SEC.DMSC -セキュリティ設定の変更を検査する
SEC.HPTR - ポインター型フィールドを private にする
SEC.MCMF - セキュリティ確保のため、 Clone( ) メソッドを virtual にしない
SEC.SMIII - internal インターフェイスを実装するメソッドをシールする
SEC.USSCR - System.Random ではなく System.Security.Cryptography.RandomNumberGenerator を使用する
SERIAL.GETOBJ - ISerializable.GetObjectData を実装する場合は WriteObjectdata を呼び出す。
SPR.ENFL - すべてのセキュリティ関連メソッドの呼び出しを必ずログに記録する
VVSG.2_4_A.APTIF - 信頼性のないクラスからアクセスされる可能性がある protected インスタンス フィールドを使用しない
VVSG.2_4_A.AUIC - 信頼性のないクラスからのアクセスを防ぐため public 内部クラスを使用しない
VVSG.2_4_A.HPTR - ポインター型フィールドを private にする
VVSG.2_4_A.SMIII - internal インターフェイスを実装するメソッドをシールする
VVSG.2_5_4_I.HPTR - ポインター型フィールドを private にする
VVSG.2_5_4_I.NOPT - CLS に準拠する場合は、ポインター型を使用しない
VVSG.2_5_B.INVOKE -同期呼び出しより非同期呼び出しを使用する
VVSG.5_2_B.TOLOWERTOUPPER - ToLower()、ToUpper() string メソッドを直接使用しない