以下のルールは CQA モードで有効にできます。

BRM.CMT.MSC - メンバーにはコメントを付けるべきである
BRM.CMT.TSC - 型にはコメントを付けるべきである
BRM.HBCM - 基底クラスのメソッドを隠蔽することを避ける
BRM.HBCP - 基底クラスのプロパティを隠蔽することを避ける
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.SEC.AUK - 'unsafe' キーワードを避ける
CS.SEC.RSFSS - "SecureString から文字列を再作成しない
CS.SEC.SSFP - パスワードには String ではなく SecureString を使用する
CS.TRS.LCB - lock 文の本文を必ず括弧で囲む
CS.TRS.LEB - 内容が空の lock 文を避ける
CT.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CT.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.120.AUK - 'unsafe' キーワードを避ける
CWE.131.AUK - 'unsafe' キーワードを避ける
CWE.190.AIWIL - ループでのインデクサーのラップアラウンドを避ける
CWE.191.AIWIL - ループでのインデクサーのラップアラウンドを避ける
CWE.197.ECLSII - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.250.AUEP - 昇格された権限の使用を避ける
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.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.401.DDFODB - 'Dispose(bool)' メソッドでは、入力パラメーターを使用して本当に破棄するかどうかをチェックする
CWE.476.CNFA - as 演算子を使用したら null チェックを行う
CWE.480.PUO - 単項演算子 + を使用しない
CWE.481.AWC - 条件の中で代入しない
CWE.494.IREC - 完全性のチェックを行わずに外部コードを実行しない
CWE.561.UC - 到達できないコードを避ける
CWE.595.REVT - ReferenceEquals() を値型で使用しない
CWE.611.PDTDP - DTD 処理を防ぐ
CWE.613.ISE - セッション有効期限が適切であるようにする
CWE.676.APDM - 潜在的に危険なメソッドの使用を避ける
CWE.681.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
CWE.704.ECLTS - データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける
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) メソッドのパラメーターの型を比較する
OPU.REVT - ReferenceEquals() を値型で使用しない
OWASP2017.A10.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
OWASP2017.A2.ISE - セッション有効期限が適切であるようにする
OWASP2017.A2.LUAFLA - ログインの試行が失敗したあとにユーザーをロックアウトする
OWASP2017.A3.ACCA - カスタム暗号化アルゴリズムの使用を避ける
OWASP2017.A3.RSFSS - SecureString から文字列を再作成しない
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' をスローしてはならない
PB.ACDE - Application.DoEvents() メソッドを呼び出さない
PB.AIHUE - HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない
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.LGE - すべての例外が標準のロガーでログに記録されるか、再 throw されるようにする
PCIDSS32.655.NCSAE - 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける
PCIDSS32.655.NTSAE - 'Exception'、'SystemException'、'AppicationException' をスローしてはならない
PCIDSS32.658.AUEP - 昇格された権限の使用を避ける
PCIDSS32.658.UAA - ページおよびコントローラーで authorization 属性を使用する
PCIDSS32.658.UAAMC - 認可属性がコントローラーと一致していることを確認する
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.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.PB.DEFSWITCH - 各 Select Case 文には Case Else を用意する

 






  • No labels