CERT ID (Java)

Klocwork Java チェッカーに対する CERT Java ID の以下のマッピングは、コミュニティで開発されたマッピングです。

ガイドライン チェッカー名および説明
CERT DCL02-J (L3): Do not modify the collection's elements during an enhanced for statement

JD.UNMOD  変更できないコレクションの変更

CERT DCL02-J (L3): 拡張 for 文の実行中にループ本体の要素を更新しない

JD.UNMOD  変更できないコレクションの変更

CERT ENV03-J (L1): Do not grant dangerous combinations of permissions

SV.CLEXT.POLICY  クラスが 'java.security.Policy' を拡張しています

CERT ENV03-J (L1): 危険な組み合わせのパーミッションを割り当てない

SV.CLEXT.POLICY  クラスが 'java.security.Policy' を拡張しています

CERT ENV06-J (L1): Production code must not contain debugging entry points

JAVA.DEBUG.ENTRY  TRANSLATE ME: Production code must not contain debugging entry points

CERT ENV06-J (L1): 本番コードにはデバッグエントリポイントを含めない

JAVA.DEBUG.ENTRY  TRANSLATE ME: Production code must not contain debugging entry points

CERT ERR01-J (L3): Do not allow exceptions to expose sensitive information

SV.IL.DEV  設計情報の漏洩

CERT ERR01-J (L3): センシティブな情報を例外によって外部に漏えいしない

SV.IL.DEV  設計情報の漏洩

CERT ERR03-J (L3): Restore prior object state on method failure

SV.HTTP_SPLIT  HTTP 応答分割

SV.SSRF.URI  無効化されたユーザー入力に基づく URI です。

CERT ERR03-J (L3): メソッドが処理に失敗した場合はオブジェクトの状態を元に戻す

SV.HTTP_SPLIT  HTTP 応答分割

SV.SSRF.URI  無効化されたユーザー入力に基づく URI です。

CERT ERR04-J (L3): Do not complete abruptly from a finally block

JD.FINRET  finally 内の return

CERT ERR04-J (L3): finally ブロックの処理を途中で終了しない

JD.FINRET  finally 内の return

CERT ERR05-J (L3): Do not let checked exceptions escape from a finally block

JD.UNCAUGHT  例外がキャッチされていません

CERT ERR05-J (L3): チェック例外を finally ブロックの外に伝播させない

JD.UNCAUGHT  例外がキャッチされていません

CERT ERR07-J (L2): Do not throw RuntimeException

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています

CERT ERR07-J (L2): RuntimeException

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています

CERT ERR08-J (L1): Do not catch NullPointerException or any of its ancestors

JD.CATCH  ランタイム例外のキャッチ

CERT ERR08-J (L1): NullPointerException およびその親クラスの例外をキャッチしない

JD.CATCH  ランタイム例外のキャッチ

CERT ERR09-J (L3): Do not allow untrusted code to terminate the JVM

SV.UMC.EXIT  System.exit() および Runtime.exit() メソッドの呼び出しをサーブレット コードで使用すべきではありません

UMC.EXIT  System.exit() メソッドの呼び出しは好ましくありません

CERT ERR09-J (L3): 信頼できないコードにJVMを終了させない

SV.UMC.EXIT  System.exit() および Runtime.exit() メソッドの呼び出しをサーブレット コードで使用すべきではありません

UMC.EXIT  System.exit() メソッドの呼び出しは好ましくありません

CERT EXP00-J (L2): Do not ignore values returned by methods

RI.IGNOREDCALL  immutable オブジェクトに対して呼び出されたメソッドから返された値が無視されています

RR.IGNORED  戻り値が無視されています

CERT EXP00-J (L2): メソッドの返り値を無視しない

RI.IGNOREDCALL  immutable オブジェクトに対して呼び出されたメソッドから返された値が無視されています

RR.IGNORED  戻り値が無視されています

CERT EXP01-J (L3): Do not use a null in a case where an object is required

NPE.COND  null チェック後の null ポインタを参照しています

NPE.CONST  null 定数が代入されたオブジェクトを参照しています

NPE.RET  メソッドから返された null ポインタを参照しています

NPE.RET.UTIL  マップまたはコレクションから返されたnull 値を参照しています

NPE.STAT  戻り値の null ポインタ 参照 (統計情報)

REDUN.EQNULL  equals() に式と null が指定された疑わしい呼び出しです(決して true にはなりません)

CERT EXP01-J (L3): オブジェクトが必要な場合は null を使用しない

NPE.COND  null チェック後の null ポインタを参照しています

NPE.CONST  null 定数が代入されたオブジェクトを参照しています

NPE.RET  メソッドから返された null ポインタを参照しています

NPE.RET.UTIL  マップまたはコレクションから返されたnull 値を参照しています

NPE.STAT  戻り値の null ポインタ 参照 (統計情報)

REDUN.EQNULL  equals() に式と null が指定された疑わしい呼び出しです(決して true にはなりません)

CERT EXP02-J (L2): 2つの配列を比較するのに Object.equals() メソッドを使用しない

JD.EQ.ARR  配列に対する 'equals' の呼び出し

CERT EXP02-J (L2): Do not use the Object.equals() method to compare two arrays

JD.EQ.ARR  配列に対する 'equals' の呼び出し

CERT EXP03-J (L2): Do not use the equality operators when comparing values of boxed primitives

CMP.OBJ  == によるオブジェクトの比較

CERT EXP03-J (L2): ボクシングされたプリミティブ型の値の比較に等値演算子を使わない

CMP.OBJ  == によるオブジェクトの比較

CERT FIO01-J (L3): Create files with appropriate access permissions

SV.PERMS.HOME  パーミッションを設定せずに、ユーザーのホームディレクトリに作成されるファイル

SV.PERMS.WIDE  広すぎるパーミッション

CERT FIO01-J (L3): 適切なパーミッションを設定してファイルを作成する

SV.PERMS.HOME  パーミッションを設定せずに、ユーザーのホームディレクトリに作成されるファイル

SV.PERMS.WIDE  広すぎるパーミッション

CERT FIO03-J (L2): Remove temporary files before termination

SV.DOS.TMPFILEDEL  JVM のライフタイムの間一時ファイルが存続します

SV.DOS.TMPFILEEXIT  一時ファイルが存続します

CERT FIO03-J (L2): 一時ファイルはプログラムの終了前に削除する

SV.DOS.TMPFILEDEL  JVM のライフタイムの間一時ファイルが存続します

SV.DOS.TMPFILEEXIT  一時ファイルが存続します

CERT FIO04-J (L3): Release resources when they are no longer needed

RLK.AWT  AWT オブジェクトが終了時に破棄されていません

RLK.FIELD  フィールドに保存されたシステム リソースがリークする可能性があります

RLK.HIBERNATE  Hibernate オブジェクトが終了時に閉じられていません

RLK.IMAGEIO  ImageIO ストリームが終了時に閉じられていません

RLK.IN  入力ストリームが終了時に閉じられていません

RLK.JNDI  JNDI コンテキストが終了時に閉じられていません

RLK.JPA  {3} オブジェクトが終了時に閉じられていません。

RLK.MAIL  JavaMail オブジェクトが終了時に閉じられていません

RLK.MICRO  Java Microedition 接続が終了時に閉じられていません

RLK.NIO  NIO オブジェクトが終了時に閉じられていません

RLK.OUT  出力ストリームが終了時に閉じられていません

RLK.SOCK  ソケットが終了時に閉じられていません

RLK.SQLCON  Sql 接続が終了時に閉じられていません

RLK.SQLOBJ  Sql オブジェクトが終了時に閉じられていません

RLK.SWT  SWT オブジェクトが終了時に破棄されていません

RLK.ZIP  Zip ファイルが終了時に閉じられていません

CERT FIO04-J (L3): 不要になったリソースは解放する

RLK.AWT  AWT オブジェクトが終了時に破棄されていません

RLK.FIELD  フィールドに保存されたシステム リソースがリークする可能性があります

RLK.HIBERNATE  Hibernate オブジェクトが終了時に閉じられていません

RLK.IMAGEIO  ImageIO ストリームが終了時に閉じられていません

RLK.IN  入力ストリームが終了時に閉じられていません

RLK.JNDI  JNDI コンテキストが終了時に閉じられていません

RLK.JPA  {3} オブジェクトが終了時に閉じられていません。

RLK.MAIL  JavaMail オブジェクトが終了時に閉じられていません

RLK.MICRO  Java Microedition 接続が終了時に閉じられていません

RLK.NIO  NIO オブジェクトが終了時に閉じられていません

RLK.OUT  出力ストリームが終了時に閉じられていません

RLK.SOCK  ソケットが終了時に閉じられていません

RLK.SQLCON  Sql 接続が終了時に閉じられていません

RLK.SQLOBJ  Sql オブジェクトが終了時に閉じられていません

RLK.SWT  SWT オブジェクトが終了時に破棄されていません

RLK.ZIP  Zip ファイルが終了時に閉じられていません

CERT FIO13-J (L3): Do not log sensitive information outside a trust boundary

SV.IL.SESSION  セッション ID のログ記録

CERT FIO13-J (L3): センシティブな情報を信頼境界の外に記録しない

SV.IL.SESSION  セッション ID のログ記録

CERT FIO16-J (L3): Canonicalize path names before validating them

SV.EXEC.PATH  信頼できない検索パス

SV.PATH  パスまたはファイル名のインジェクション

SV.PATH.INJ  ファイル インジェクション

SV.TMPFILE  一時ファイルのパス改ざん

CERT FIO16-J (L3): パス名は検証する前に正規化する

SV.EXEC.PATH  信頼できない検索パス

SV.PATH  パスまたはファイル名のインジェクション

SV.PATH.INJ  ファイル インジェクション

SV.TMPFILE  一時ファイルのパス改ざん

CERT IDS00-J (L1): Prevent SQL injection

SV.DATA.DB  データ インジェクション

SV.SQL  SQL インジェクション

SV.SQL.DBSOURCE  未検証のデータベースからの情報がSQL文に使用されています

CERT IDS00-J (L1): SQL インジェクションを防ぐ

SV.DATA.DB  データ インジェクション

SV.SQL  SQL インジェクション

SV.SQL.DBSOURCE  未検証のデータベースからの情報がSQL文に使用されています

CERT IDS01-J (L1): Normalize strings before validating them

SV.TAINT  不正データ

SV.TAINT_NATIVE  不正データがネイティブ コードに渡されています

SV.XSS.DB  クロスサイト スクリプティング (Stored XSS)

SV.XSS.REF  クロスサイト スクリプティング (Reflected XSS)

CERT IDS01-J (L1): 文字列は検査するまえに標準化する

SV.TAINT  不正データ

SV.TAINT_NATIVE  不正データがネイティブ コードに渡されています

SV.XSS.DB  クロスサイト スクリプティング (Stored XSS)

SV.XSS.REF  クロスサイト スクリプティング (Reflected XSS)

CERT IDS03-J (L2): Do not log unsanitized user input

SV.LOG_FORGING  ログの偽造

CERT IDS03-J (L2): ユーザ入力を無害化せずにログに保存しない

SV.LOG_FORGING  ログの偽造

CERT IDS07-J (L1): Runtime.exec() メソッドに渡された信頼できないデータを無害化する

SV.EXEC  プロセス インジェクション

SV.EXEC.DIR  プロセス インジェクション。作業ディレクトリ

SV.EXEC.ENV  プロセス インジェクション。環境変数

SV.EXEC.LOCAL  プロセス インジェクション。ローカル引数

SV.EXEC.PATH  信頼できない検索パス

CERT IDS07-J (L1): Sanitize untrusted data passed to the Runtime.exec() method

SV.EXEC  プロセス インジェクション

SV.EXEC.DIR  プロセス インジェクション。作業ディレクトリ

SV.EXEC.ENV  プロセス インジェクション。環境変数

SV.EXEC.LOCAL  プロセス インジェクション。ローカル引数

SV.EXEC.PATH  信頼できない検索パス

CERT IDS16-J (L1): Prevent XML Injection

JAVA.SV.XML.INVALID  XML は Java オブジェクトにマーシャリング解除される前に検証されません

CERT IDS16-J (L1): XML インジェクションを防ぐ

JAVA.SV.XML.INVALID  XML は Java オブジェクトにマーシャリング解除される前に検証されません

CERT IDS17-J (L2): Prevent XML External Entity Attacks

SV.XXE.DBF  XML 外部実体攻撃の可能性

SV.XXE.SF  XML 外部実体攻撃の可能性

SV.XXE.SPF  XML 外部実体攻撃の可能性

SV.XXE.TF  XML 外部実体攻撃の可能性

SV.XXE.XIF  XML 外部実体攻撃の可能性

SV.XXE.XRF  XML 外部実体攻撃の可能性

CERT IDS17-J (L2): XML の外部エンティティ攻撃を防ぐ

SV.XXE.DBF  XML 外部実体攻撃の可能性

SV.XXE.SF  XML 外部実体攻撃の可能性

SV.XXE.SPF  XML 外部実体攻撃の可能性

SV.XXE.TF  XML 外部実体攻撃の可能性

SV.XXE.XIF  XML 外部実体攻撃の可能性

SV.XXE.XRF  XML 外部実体攻撃の可能性

CERT JNI00-J (L3): Define wrappers around native methods

JAVA.NATIVE.PUBLIC  TRANSLATE ME: Define wrappers around native methods

CERT JNI00-J (L3): ネイティブメソッドにはラッパーを定義する

JAVA.NATIVE.PUBLIC  TRANSLATE ME: Define wrappers around native methods

CERT JNI01-J (L1): Safely invoke standard APIs that perform tasks using the immediate caller's class loader instance (loadLibrary)

SV.LOADLIB.INJ  'loadLibrary' メソッドに対する信頼できない呼び出し

CERT JNI01-J (L1): 直近の呼出し元のクラスローダーのインスタンス(loadLibrary)を使ってタスクを実行する標準APIを安全に呼出す

SV.LOADLIB.INJ  'loadLibrary' メソッドに対する信頼できない呼び出し

CERT LCK05-J (L3): Synchronize access to static fields that can be modified by untrusted code

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT LCK05-J (L3): 信頼できないコードによって変更されうる static フィールドへのアクセスは同期する

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT LCK07-J (L3): Avoid deadlock by requesting and releasing locks in the same order

JD.LOCK  取得したロックを解放していません

CERT LCK07-J (L3): デッドロックを回避するためにロックは同一順序で要求および解放する

JD.LOCK  取得したロックを解放していません

CERT LCK09-J (L3): Do not perform operations that can block while holding a lock

JD.LOCK.NOTIFY  ロックが保持された状態で 'notify' メソッドが呼び出されています

JD.LOCK.SLEEP  ロックが保持された状態で 'sleep' メソッドが呼び出されています

JD.LOCK.WAIT  ロックが保持された状態で 'wait' メソッドが呼び出されています

CERT LCK09-J (L3): 途中で待機状態になる可能性のある操作をロックを保持したまま実行しない

JD.LOCK.NOTIFY  ロックが保持された状態で 'notify' メソッドが呼び出されています

JD.LOCK.SLEEP  ロックが保持された状態で 'sleep' メソッドが呼び出されています

JD.LOCK.WAIT  ロックが保持された状態で 'wait' メソッドが呼び出されています

CERT LCK10-J (L3): Use a correct form of the double-checked locking idiom

JD.SYNC.DCL  ダブルチェック ロッキング

CERT LCK10-J (L3): 正しいダブルチェックロック手法を使う

JD.SYNC.DCL  ダブルチェック ロッキング

CERT MET01-J (L2): Never use assertions to validate method arguments

JAVA.ASSERT.ARG  TRANSLATE ME: Never use assertions to validate method arguments

CERT MET01-J (L2): メソッド引数の検証には決してアサートを使用しない

JAVA.ASSERT.ARG  TRANSLATE ME: Never use assertions to validate method arguments

CERT MET09-J (L3): Classes that define an equals() method must also define a hashCode() method

EHC.EQ  クラスが hashCode() を定義していますが、equals() は定義していません

EHC.HASH  クラスが equals() を定義していますが、hashCode() は定義していません

CERT MET09-J (L3): equals() メソッドを実装するクラスでは hashCode() メソッドも実装する

EHC.EQ  クラスが hashCode() を定義していますが、equals() は定義していません

EHC.HASH  クラスが equals() を定義していますが、hashCode() は定義していません

CERT MET12-J (L2): Do not use finalizers

FIN.EMPTY  空の finalize() メソッドは削除する必要があります

FIN.NOSUPER  finalize() メソッドの実装は super.finalize() を呼び出す必要があります

JD.UMC.FINALIZE  'Object.finalize' メソッドが明示的に呼び出されています

JD.UMC.RUNFIN  runFinalizersOnExit() が呼び出されています

SV.EXPOSE.FIN  finalize() メソッドは、public ではなく protected アクセス修飾子を使用する必要があります

CERT MET12-J (L2): ファイナライザは使わない

FIN.EMPTY  空の finalize() メソッドは削除する必要があります

FIN.NOSUPER  finalize() メソッドの実装は super.finalize() を呼び出す必要があります

JD.UMC.FINALIZE  'Object.finalize' メソッドが明示的に呼び出されています

JD.UMC.RUNFIN  runFinalizersOnExit() が呼び出されています

SV.EXPOSE.FIN  finalize() メソッドは、public ではなく protected アクセス修飾子を使用する必要があります

CERT MSC00-J (L2): Use SSLSocket rather than Socket for secure data exchange

SV.WEAK.TLS  脆弱な SSL/TLS プロトコルは使用しないでください。

CERT MSC00-J (L2): セキュアなデータ交換には Socket クラスではなく SSLSocket クラスを使用する

SV.WEAK.TLS  脆弱な SSL/TLS プロトコルは使用しないでください。

CERT MSC01-J (L3): Do not use an empty infinite loop

JAVA.INF.LOOP.EMPTY  TRANSLATE ME: Do not use an empty infinite loop

CERT MSC01-J (L3): 空の無限ループを使用しない

JAVA.INF.LOOP.EMPTY  TRANSLATE ME: Do not use an empty infinite loop

CERT MSC02-J (L1): Generate strong random numbers

SV.RANDOM  安全ではない乱数ジェネレータの使用

CERT MSC02-J (L1): 高品質の乱数を生成する

SV.RANDOM  安全ではない乱数ジェネレータの使用

CERT MSC03-J (L1): Never hard code sensitive information

SV.PASSWD.HC  ハードコードされたパスワード

SV.PASSWD.HC.EMPTY  空のパスワード

SV.PASSWD.PLAIN  プレーンテキストのパスワード

SV.PASSWD.PLAIN.HC  プレーンテキストのパスワード

SV.SENSITIVE.DATA  暗号化されていない機密データが書き込まれます

SV.SENSITIVE.OBJ  暗号化されていない機密データを持つオブジェクトが保存されます

CERT MSC03-J (L1): センシティブな情報をハードコードしない

SV.PASSWD.HC  ハードコードされたパスワード

SV.PASSWD.HC.EMPTY  空のパスワード

SV.PASSWD.PLAIN  プレーンテキストのパスワード

SV.PASSWD.PLAIN.HC  プレーンテキストのパスワード

SV.SENSITIVE.DATA  暗号化されていない機密データが書き込まれます

SV.SENSITIVE.OBJ  暗号化されていない機密データを持つオブジェクトが保存されます

CERT MSC05-J (L3): Do not exhaust heap space

JD.INF.ALLOC  無限ループ内での割り当てです。

SV.DOS.ARRSIZE  不正なサイズが配列割り当てに使用されています

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

CERT MSC05-J (L3): ヒープメモリを使い果たさない

JD.INF.ALLOC  無限ループ内での割り当てです。

SV.DOS.ARRSIZE  不正なサイズが配列割り当てに使用されています

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

CERT MSC06-J (L3): Do not modify the underlying collection when an iteration is in progress

JD.CONCUR  ConcurrentModificationException の可能性があります

CERT MSC06-J (L3): 繰り返し処理中に基となるコレクションを変更しない

JD.CONCUR  ConcurrentModificationException の可能性があります

CERT MSC11-J (L2): Do not let session information leak within a servlet

SV.IL.SESSION  セッション ID のログ記録

SV.IL.SESSION.CLIENT  HttpServletRequest.getRequestedSessionId メソッドは使用しないでください。

SV.SESSION.FIXATION.COOKIE  cookie は、セッションの固定化に対して脆弱であってはなりません

SV.SPRING.FIXATION  セッション固定化保護が無効になっています。

CERT MSC11-J (L2): servlet 内のセッション情報をリークさせない

SV.IL.SESSION  セッション ID のログ記録

SV.IL.SESSION.CLIENT  HttpServletRequest.getRequestedSessionId メソッドは使用しないでください。

SV.SESSION.FIXATION.COOKIE  cookie は、セッションの固定化に対して脆弱であってはなりません

SV.SPRING.FIXATION  セッション固定化保護が無効になっています。

CERT NUM00-J (L3): Detect or prevent integer overflow

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

CERT NUM00-J (L3): 整数オーバーフローを検出あるいは防止する

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

CERT NUM07-J (L3): Do not attempt comparisons with NaN

JAVA.COMPARE.NAN  TRANSLATE ME: Do not attempt comparisons with NaN

CERT NUM07-J (L3): NaN と比較しようとしない

JAVA.COMPARE.NAN  TRANSLATE ME: Do not attempt comparisons with NaN

CERT NUM09-J (L2): Do not use floating-point variables as loop counters

JAVA.LOOP.CTR.FLOAT  TRANSLATE ME: Do not use floating-point variables as loop counters

CERT NUM09-J (L2): 浮動小数点変数をループカウンターとして使用しない

JAVA.LOOP.CTR.FLOAT  TRANSLATE ME: Do not use floating-point variables as loop counters

CERT NUM10-J (L2): Do not construct BigDecimal objects from floating-point literals

JAVA.BIGDEC.FLOAT  TRANSLATE ME: Do not construct BigDecimal objects from floating-point literals

CERT NUM10-J (L2): 浮動小数点リテラルから BigDecimal オブジェクトを構築しない

JAVA.BIGDEC.FLOAT  TRANSLATE ME: Do not construct BigDecimal objects from floating-point literals

CERT OBJ01-J (L1): Limit accessibility of fields

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.EXPOSE.IFIELD  インスタンス フィールドは final にする必要があります

SV.EXPOSE.MUTABLEFIELD  static mutable フィールドは悪意のあるコードによってアクセスされる可能性があります

SV.STRUTS.PRIVATE  ステータス フォーム: non-private フィールド

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

CERT OBJ01-J (L1): フィールドへのアクセスを制限する

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.EXPOSE.IFIELD  インスタンス フィールドは final にする必要があります

SV.EXPOSE.MUTABLEFIELD  static mutable フィールドは悪意のあるコードによってアクセスされる可能性があります

SV.STRUTS.PRIVATE  ステータス フォーム: non-private フィールド

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

CERT OBJ04-J (L2): Provide mutable classes with copy functionality to safely allow passing instances to untrusted code

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

CERT OBJ04-J (L2): 信頼できないコードにインスタンスを安全に渡すため、可変クラスにはコピー機能を実装する

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

CERT OBJ05-J (L1): Do not return references to private mutable class members

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

CERT OBJ05-J (L1): privateな可変クラスメンバへ参照を返さない

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

CERT OBJ09-J (L2): Compare classes and not class names

CMP.CLASS  クラス名による比較が行われています

CERT OBJ09-J (L2): クラス名を比較するのではなくクラスを比較する

CMP.CLASS  クラス名による比較が行われています

CERT OBJ10-J (L2): Do not use public static nonfinal fields

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

CERT OBJ10-J (L2): public staticのfinal宣言していないフィールドを使わない

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

CERT OBJ11-J (L1): Be wary of letting constructors throw exceptions

JAVA.CTOR.EXCEPT  TRANSLATE ME: Be wary of letting constructors throw exceptions

JAVA.FINAL.STATIC.VAR  TRANSLATE ME: Use of nonfinal static variable

CERT OBJ11-J (L1): コンストラクターが例外をスローすることに注意する

JAVA.CTOR.EXCEPT  TRANSLATE ME: Be wary of letting constructors throw exceptions

JAVA.FINAL.STATIC.VAR  TRANSLATE ME: Use of nonfinal static variable

CERT SEC00-J (L2): Do not allow privileged blocks to leak sensitive information across a trust boundary

SV.PRIVILEGE.MISSING  呼び出されるメソッドは doPrivileged ブロック内にあってはなりません

CERT SEC00-J (L2): センシティブな情報を特権ブロックから信頼境界を越えて漏えいさせない

SV.PRIVILEGE.MISSING  呼び出されるメソッドは doPrivileged ブロック内にあってはなりません

CERT SEC03-J (L1): Do not load trusted classes after allowing untrusted code to load arbitrary classes

SV.CLASSLOADER.INJ  クラスローダー URL インジェクション

SV.CLEXT.CLLOADER  クラスが 'java.lang.ClassLoader' を拡張しています

SV.CLLOADER  クラスローダが直接使用されています

CERT SEC03-J (L1): 信頼できないコードに任意のクラスのロードを許可した後で信頼するクラスをロードしない

SV.CLASSLOADER.INJ  クラスローダー URL インジェクション

SV.CLEXT.CLLOADER  クラスが 'java.lang.ClassLoader' を拡張しています

SV.CLLOADER  クラスローダが直接使用されています

CERT SER01-J (L1): Do not deviate from the proper signatures of serialization methods

SV.SERIAL.SIG  Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります

CERT SER01-J (L1): シリアライズに関連するメソッドは正しいシグネチャで実装する

SV.SERIAL.SIG  Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります

CERT SER03-J (L2): Do not serialize unencrypted sensitive data

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOWRITE  メソッド writeObject() を Serializable クラスに対して定義する必要があります

CERT SER03-J (L2): 暗号化されていないセンシティブなデータをシリアライズしない

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOWRITE  メソッド writeObject() を Serializable クラスに対して定義する必要があります

CERT SER05-J (L1): Do not serialize instances of inner classes

JAVA.SERIALIZE.INNER  TRANSLATE ME: Do not serialize instances of inner classes

CERT SER05-J (L1): 内部クラスのインスタンスをシリアル化しない

JAVA.SERIALIZE.INNER  TRANSLATE ME: Do not serialize instances of inner classes

CERT SER06-J (L3): Make defensive copies of private mutable components during deserialization

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

CERT SER06-J (L3): 復元時には private 宣言された可変コンポーネントはディフェンシブコピーする

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

CERT SER09-J (L3): Do not invoke overridable methods from the readObject() method

SV.SERIAL.OVERRIDE  readObject() メソッドからオーバーライド可能なメソッドを呼び出さないでください

CERT SER09-J (L3): オーバーライド可能なメソッドを readObject() メソッドから呼び出さない

SV.SERIAL.OVERRIDE  readObject() メソッドからオーバーライド可能なメソッドを呼び出さないでください

CERT SER12-J (L2): Prevent deserialization of untrusted data

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

CERT SER12-J (L2): 信頼できないデータの復元はしない

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

CERT THI00-J (L3): Do not invoke Thread.run()

JD.THREAD.RUN  'Thread.run' メソッドが明示的に呼び出されています

CERT THI00-J (L3): Thread.run() メソッドを直接呼び出さない

JD.THREAD.RUN  'Thread.run' メソッドが明示的に呼び出されています

CERT THI01-J (L3): Do not invoke ThreadGroup methods

JAVA.THREADGROUP  TRANSLATE ME: Do not invoke ThreadGroup methods

CERT THI01-J (L3): ThreadGroup メソッドを呼び出さない

JAVA.THREADGROUP  TRANSLATE ME: Do not invoke ThreadGroup methods

CERT THI03-J (L3): Always invoke wait() and await() methods inside a loop

JAVA.WAIT.IN.LOOP  TRANSLATE ME: Always invoke wait() and await() methods inside a loop

CERT THI03-J (L3): wait() メソッドと await() メソッドは必ずループ内で呼び出す

JAVA.WAIT.IN.LOOP  TRANSLATE ME: Always invoke wait() and await() methods inside a loop

CERT VNA00-J (L2): Ensure visibility when accessing shared primitive variables

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT VNA00-J (L2): 共有プリミティブ型変数の可視性を確保する

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT VNA01-J (L3): Ensure visibility of shared references to immutable objects

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT VNA01-J (L3): 不変オブジェクトへの共有参照の可視性を確保する

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT VNA02-J (L2): Ensure that compound operations on shared variables are atomic

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

CERT VNA02-J (L2): 共有変数への複合操作のアトミック性を確保する

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

DCL02-J (L3)

JD.UNMOD  変更できないコレクションの変更

ENV03-J (L1)

SV.CLEXT.POLICY  クラスが 'java.security.Policy' を拡張しています

ENV06-J (L1)

JAVA.DEBUG.ENTRY  TRANSLATE ME: Production code must not contain debugging entry points

ERR01-J (L3)

SV.IL.DEV  設計情報の漏洩

ERR03-J (L3)

SV.HTTP_SPLIT  HTTP 応答分割

SV.SSRF.URI  無効化されたユーザー入力に基づく URI です。

ERR04-J (L3)

JD.FINRET  finally 内の return

ERR05-J (L3)

JD.UNCAUGHT  例外がキャッチされていません

ERR07-J (L2)

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています

ERR08-J (L1)

JD.CATCH  ランタイム例外のキャッチ

ERR09-J (L3)

SV.UMC.EXIT  System.exit() および Runtime.exit() メソッドの呼び出しをサーブレット コードで使用すべきではありません

UMC.EXIT  System.exit() メソッドの呼び出しは好ましくありません

EXP00-J (L2)

RI.IGNOREDCALL  immutable オブジェクトに対して呼び出されたメソッドから返された値が無視されています

RR.IGNORED  戻り値が無視されています

EXP01-J (L3)

NPE.COND  null チェック後の null ポインタを参照しています

NPE.CONST  null 定数が代入されたオブジェクトを参照しています

NPE.RET  メソッドから返された null ポインタを参照しています

NPE.RET.UTIL  マップまたはコレクションから返されたnull 値を参照しています

NPE.STAT  戻り値の null ポインタ 参照 (統計情報)

REDUN.EQNULL  equals() に式と null が指定された疑わしい呼び出しです(決して true にはなりません)

EXP02-J (L2)

JD.EQ.ARR  配列に対する 'equals' の呼び出し

EXP03-J (L2)

CMP.OBJ  == によるオブジェクトの比較

Exception

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています

FIO01-J (L3)

SV.PERMS.HOME  パーミッションを設定せずに、ユーザーのホームディレクトリに作成されるファイル

SV.PERMS.WIDE  広すぎるパーミッション

FIO03-J (L2)

SV.DOS.TMPFILEDEL  JVM のライフタイムの間一時ファイルが存続します

SV.DOS.TMPFILEEXIT  一時ファイルが存続します

FIO04-J (L3)

RLK.AWT  AWT オブジェクトが終了時に破棄されていません

RLK.FIELD  フィールドに保存されたシステム リソースがリークする可能性があります

RLK.HIBERNATE  Hibernate オブジェクトが終了時に閉じられていません

RLK.IMAGEIO  ImageIO ストリームが終了時に閉じられていません

RLK.IN  入力ストリームが終了時に閉じられていません

RLK.JNDI  JNDI コンテキストが終了時に閉じられていません

RLK.JPA  {3} オブジェクトが終了時に閉じられていません。

RLK.MAIL  JavaMail オブジェクトが終了時に閉じられていません

RLK.MICRO  Java Microedition 接続が終了時に閉じられていません

RLK.NIO  NIO オブジェクトが終了時に閉じられていません

RLK.OUT  出力ストリームが終了時に閉じられていません

RLK.SOCK  ソケットが終了時に閉じられていません

RLK.SQLCON  Sql 接続が終了時に閉じられていません

RLK.SQLOBJ  Sql オブジェクトが終了時に閉じられていません

RLK.SWT  SWT オブジェクトが終了時に破棄されていません

RLK.ZIP  Zip ファイルが終了時に閉じられていません

FIO13-J (L3)

SV.IL.SESSION  セッション ID のログ記録

FIO16-J (L3)

SV.EXEC.PATH  信頼できない検索パス

SV.PATH  パスまたはファイル名のインジェクション

SV.PATH.INJ  ファイル インジェクション

SV.TMPFILE  一時ファイルのパス改ざん

IDS00-J (L1)

SV.DATA.DB  データ インジェクション

SV.SQL  SQL インジェクション

SV.SQL.DBSOURCE  未検証のデータベースからの情報がSQL文に使用されています

IDS01-J (L1)

SV.TAINT  不正データ

SV.TAINT_NATIVE  不正データがネイティブ コードに渡されています

SV.XSS.DB  クロスサイト スクリプティング (Stored XSS)

SV.XSS.REF  クロスサイト スクリプティング (Reflected XSS)

IDS03-J (L2)

SV.LOG_FORGING  ログの偽造

IDS07-J (L1)

SV.EXEC  プロセス インジェクション

SV.EXEC.DIR  プロセス インジェクション。作業ディレクトリ

SV.EXEC.ENV  プロセス インジェクション。環境変数

SV.EXEC.LOCAL  プロセス インジェクション。ローカル引数

SV.EXEC.PATH  信頼できない検索パス

IDS16-J (L1)

JAVA.SV.XML.INVALID  XML は Java オブジェクトにマーシャリング解除される前に検証されません

IDS17-J (L2)

SV.XXE.DBF  XML 外部実体攻撃の可能性

SV.XXE.SF  XML 外部実体攻撃の可能性

SV.XXE.SPF  XML 外部実体攻撃の可能性

SV.XXE.TF  XML 外部実体攻撃の可能性

SV.XXE.XIF  XML 外部実体攻撃の可能性

SV.XXE.XRF  XML 外部実体攻撃の可能性

JNI00-J (L3)

JAVA.NATIVE.PUBLIC  TRANSLATE ME: Define wrappers around native methods

JNI01-J (L1)

SV.LOADLIB.INJ  'loadLibrary' メソッドに対する信頼できない呼び出し

LCK05-J (L3)

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

LCK07-J (L3)

JD.LOCK  取得したロックを解放していません

LCK09-J (L3)

JD.LOCK.NOTIFY  ロックが保持された状態で 'notify' メソッドが呼び出されています

JD.LOCK.SLEEP  ロックが保持された状態で 'sleep' メソッドが呼び出されています

JD.LOCK.WAIT  ロックが保持された状態で 'wait' メソッドが呼び出されています

LCK10-J (L3)

JD.SYNC.DCL  ダブルチェック ロッキング

MET01-J (L2)

JAVA.ASSERT.ARG  TRANSLATE ME: Never use assertions to validate method arguments

MET09-J (L3)

EHC.EQ  クラスが hashCode() を定義していますが、equals() は定義していません

EHC.HASH  クラスが equals() を定義していますが、hashCode() は定義していません

MET12-J (L2)

FIN.EMPTY  空の finalize() メソッドは削除する必要があります

FIN.NOSUPER  finalize() メソッドの実装は super.finalize() を呼び出す必要があります

JD.UMC.FINALIZE  'Object.finalize' メソッドが明示的に呼び出されています

JD.UMC.RUNFIN  runFinalizersOnExit() が呼び出されています

SV.EXPOSE.FIN  finalize() メソッドは、public ではなく protected アクセス修飾子を使用する必要があります

MSC00-J (L2)

SV.WEAK.TLS  脆弱な SSL/TLS プロトコルは使用しないでください。

MSC01-J (L3)

JAVA.INF.LOOP.EMPTY  TRANSLATE ME: Do not use an empty infinite loop

MSC02-J (L1)

SV.RANDOM  安全ではない乱数ジェネレータの使用

MSC03-J (L1)

SV.PASSWD.HC  ハードコードされたパスワード

SV.PASSWD.HC.EMPTY  空のパスワード

SV.PASSWD.PLAIN  プレーンテキストのパスワード

SV.PASSWD.PLAIN.HC  プレーンテキストのパスワード

SV.SENSITIVE.DATA  暗号化されていない機密データが書き込まれます

SV.SENSITIVE.OBJ  暗号化されていない機密データを持つオブジェクトが保存されます

MSC05-J (L3)

JD.INF.ALLOC  無限ループ内での割り当てです。

SV.DOS.ARRSIZE  不正なサイズが配列割り当てに使用されています

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

MSC06-J (L3)

JD.CONCUR  ConcurrentModificationException の可能性があります

MSC11-J (L2)

SV.IL.SESSION  セッション ID のログ記録

SV.IL.SESSION.CLIENT  HttpServletRequest.getRequestedSessionId メソッドは使用しないでください。

SV.SESSION.FIXATION.COOKIE  cookie は、セッションの固定化に対して脆弱であってはなりません

SV.SPRING.FIXATION  セッション固定化保護が無効になっています。

NUM00-J (L3)

SV.INT_OVF  不正データが整数オーバーフローを引き起こす可能性があります

NUM07-J (L3)

JAVA.COMPARE.NAN  TRANSLATE ME: Do not attempt comparisons with NaN

NUM09-J (L2)

JAVA.LOOP.CTR.FLOAT  TRANSLATE ME: Do not use floating-point variables as loop counters

NUM10-J (L2)

JAVA.BIGDEC.FLOAT  TRANSLATE ME: Do not construct BigDecimal objects from floating-point literals

OBJ01-J (L1)

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.EXPOSE.IFIELD  インスタンス フィールドは final にする必要があります

SV.EXPOSE.MUTABLEFIELD  static mutable フィールドは悪意のあるコードによってアクセスされる可能性があります

SV.STRUTS.PRIVATE  ステータス フォーム: non-private フィールド

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

OBJ04-J (L2)

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

OBJ05-J (L1)

SV.EXPOSE.RET  内部表現が露出される可能性があります

SV.EXPOSE.STORE  メソッドが mutable オブジェクトへの参照を保存しています

OBJ09-J (L2)

CMP.CLASS  クラス名による比較が行われています

OBJ10-J (L2)

SV.EXPOSE.FIELD  static フィールドは悪意のあるコードによって変更される可能性があります

SV.STRUTS.STATIC  ステータス フォーム: static フィールド

OBJ11-J (L1)

JAVA.CTOR.EXCEPT  TRANSLATE ME: Be wary of letting constructors throw exceptions

JAVA.FINAL.STATIC.VAR  TRANSLATE ME: Use of nonfinal static variable

SEC00-J (L2)

SV.PRIVILEGE.MISSING  呼び出されるメソッドは doPrivileged ブロック内にあってはなりません

SEC03-J (L1)

SV.CLASSLOADER.INJ  クラスローダー URL インジェクション

SV.CLEXT.CLLOADER  クラスが 'java.lang.ClassLoader' を拡張しています

SV.CLLOADER  クラスローダが直接使用されています

SER01-J (L1)

SV.SERIAL.SIG  Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります

SER03-J (L2)

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOWRITE  メソッド writeObject() を Serializable クラスに対して定義する必要があります

SER05-J (L1)

JAVA.SERIALIZE.INNER  TRANSLATE ME: Do not serialize instances of inner classes

SER06-J (L3)

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

SER09-J (L3)

SV.SERIAL.OVERRIDE  readObject() メソッドからオーバーライド可能なメソッドを呼び出さないでください

SER12-J (L2)

SV.SERIAL.NOFINAL  シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります

SV.SERIAL.NOREAD  メソッド readObject() を Serializable クラスに対して定義する必要があります

THI00-J (L3)

JD.THREAD.RUN  'Thread.run' メソッドが明示的に呼び出されています

THI01-J (L3)

JAVA.THREADGROUP  TRANSLATE ME: Do not invoke ThreadGroup methods

THI03-J (L3)

JAVA.WAIT.IN.LOOP  TRANSLATE ME: Always invoke wait() and await() methods inside a loop

Throwable をスローしない

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています

VNA00-J (L2)

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

VNA01-J (L3)

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

VNA02-J (L2)

SV.SHARED.VAR  サーブレットから static 変数への非同期アクセス

or Throwable

EXC.BROADTHROWS  過度に広範な範囲に対応するメソッドが宣言をスローしています