Java チェッカーリファレンス

チェッカー名 説明 重要度のデフォルト値 デフォルトで有効になりましたか? 調整可能値ですか?
ANDROID.LIFECYCLE.SV.FRAGMENTINJ 未検証のフラグメント クラス名 1 True (真) はい
ANDROID.LIFECYCLE.SV.GETEXTRA 未検証の外部データ 3 True (真) はい
ANDROID.NPE Android アプリケーションの null 値を参照しています 4 True (真) はい
ANDROID.RLK.MEDIAPLAYER メディア プレイヤーが終了時に解放されていません 1 True (真) はい
ANDROID.RLK.MEDIARECORDER メディア レコーダーが終了時に解放されていません 1 True (真) はい
ANDROID.RLK.SQLCON Sql コネクションが終了時に閉じられていません 1 True (真) はい
ANDROID.RLK.SQLOBJ Sql オブジェクトが終了時に閉じられていません 1 True (真) はい
ANDROID.UF.BITMAP recycle後のビットマップの使用 2 True (真) はい
ANDROID.UF.CAMERA 解放後のカメラの使用 2 True (真) はい
ANDROID.UF.MEDIAPLAYER 解放後のメディア プレイヤーの使用 2 True (真) はい
ANDROID.UF.MEDIARECORDER 解放後のメディア レコーダーの使用 2 True (真) はい
CMP.CLASS クラス名による比較が行われています 4 False (偽) いいえ
CMPF.FLOAT 浮動小数点型に対する等価チェックは避ける必要があります 4 True (真) いいえ
CMP.OBJ == によるオブジェクトの比較 4 True (真) いいえ
CMP.STR == による文字列の比較 4 True (真) いいえ
COV.CMP compareTo() メソッドは、シグネチャ 'public int compareTo(Object)' を持つ必要があります 4 True (真) いいえ
ECC.EMPTY Catch 節が空です 4 True (真) いいえ
EHC.EQ クラスが hashCode() を定義していますが、equals() は定義していません 4 True (真) いいえ
EHC.HASH クラスが equals() を定義していますが、hashCode() は定義していません 4 True (真) いいえ
ESCMP.EMPTYSTR 非効率な空文字列比較 4 True (真) いいえ
EXC.BROADTHROWS 過度に広範な範囲に対応するメソッドが宣言をスローしています 4 True (真) いいえ
FIN.EMPTY 空の finalize() メソッドは削除する必要があります 3 True (真) いいえ
FIN.NOSUPER finalize() メソッドの実装は super.finalize() を呼び出す必要があります 3 True (真) いいえ
FSC.PRT クラスとそのスーパークラスが同じ名前の protected フィールドを持ちます 4 False (偽) いいえ
FSC.PRV クラスとそのスーパークラスが同じ名前の private フィールドを持ちます 4 False (偽) いいえ
FSC.PUB クラスとそのスーパークラスが同じ名前の public フィールドを持ちます 4 False (偽) いいえ
JAVA.SV.EMAIL.HOST 検証なしでホストに電子メールを送信しています。 3 True (真) はい
JAVA.SV.XML.INVALID XML は Java オブジェクトにマーシャリング解除される前に検証されません 2 True (真) はい
JD.BITCMP 式で非短絡ロジックが使用されています。 3 True (真) いいえ
JD.BITMASK ビット演算でエラーの可能性があります 3 True (真) いいえ
JD.BITR 冗長な式 3 True (真) いいえ
JD.CALL.WRONGSTATIC static メソッドがインスタンス参照から呼び出されています 4 True (真) いいえ
JD.CAST.COL.MIGHT コレクションで発生する可能性のある ClassCastException 4 False (偽) いいえ
JD.CAST.COL.MUST コレクションで発生する ClassCastException 4 True (真) いいえ
JD.CAST.DOWNCAST 派生型に対する ClassCastException の可能性があります 4 True (真) いいえ
JD.CAST.KEY コレクション要素の取得に使用されるキーの型が正しくない可能性があります 4 True (真) いいえ
JD.CAST.SUSP.MIGHT 異なるタイプの ClassCastException の可能性あり 4 True (真) いいえ
JD.CAST.SUSP.MUST 異なるタイプの ClassCastException 4 True (真) いいえ
JD.CAST.UPCAST 派生型に対する ClassCastException の可能性があります 4 True (真) いいえ
JD.CATCH ランタイム例外のキャッチ 4 True (真) いいえ
JD.CONCUR ConcurrentModificationException の可能性があります 3 True (真) いいえ
JD.EQ.ARR 配列に対する 'equals' の呼び出し 4 True (真) いいえ
JD.EQ.UTA 整合しない型 (配列と非配列) に対して 'equals' が呼び出されています 4 True (真) いいえ
JD.EQ.UTC 整合しない型に対して equals が呼び出されています 4 True (真) いいえ
JD.FINRET finally 内の return 4 True (真) いいえ
JD.IFBAD 'if' 文が冗長です 3 True (真) いいえ
JD.IFEMPTY 'if' 文が冗長です。未完成のコード 3 True (真) いいえ
JD.INF.ALLOC 無限ループ内での割り当てです。 4 True (真) いいえ
JD.INF.AREC 見かけ上の無限再帰 4 True (真) いいえ
JD.INST.TRUE 冗長な 'instanceof' 条件 4 True (真) いいえ
JD.LIST.ADD 自分自身に追加されたコンテナ 4 True (真) いいえ
JD.LOCK 取得したロックを解放していません 2 True (真) はい
JD.LOCK.NOTIFY ロックが保持された状態で 'notify' メソッドが呼び出されています 4 True (真) いいえ
JD.LOCK.SLEEP ロックが保持された状態で 'sleep' メソッドが呼び出されています 4 True (真) いいえ
JD.LOCK.WAIT ロックが保持された状態で 'wait' メソッドが呼び出されています 4 True (真) いいえ
JD.METHOD.CBS メソッドは静的です 4 False (偽) いいえ
JD.NEXT 'NoSuchElementException' の可能性があります 4 True (真) はい
JD.OVER オーバーライドの不一致 4 True (真) いいえ
JD.RC.EXPR.CHECK テスト式は常に true となります 4 True (真) いいえ
JD.RC.EXPR.DEAD 冗長なチェックはデッド コードの原因となります 4 False (偽) いいえ
JD.ST.POS 'indexOf' メソッドのチェックが不適切です 4 True (真) いいえ
JD.SYNC.DCL ダブルチェック ロッキング 4 True (真) いいえ
JD.SYNC.IN 一貫性のない同期化 4 True (真) いいえ
JD.THREAD.RUN 'Thread.run' メソッドが明示的に呼び出されています 4 True (真) いいえ
JD.UMC.FINALIZE 'Object.finalize' メソッドが明示的に呼び出されています 3 True (真) いいえ
JD.UMC.RUNFIN runFinalizersOnExit() が呼び出されています 3 True (真) いいえ
JD.UMC.WAIT 間違ったオブジェクトに対して wait が呼び出されています 4 True (真) いいえ
JD.UNCAUGHT 例外がキャッチされていません 4 True (真) いいえ
JD.UN.MET 未使用の non-private メソッド 4 False (偽) いいえ
JD.UNMOD 変更できないコレクションの変更 2 True (真) はい
JD.UN.PMET 未使用の private メソッド 3 True (真) いいえ
JD.VNU 変数はいずれかのパスで代入された後に一度も読み取られていません 4 True (真) いいえ
JD.VNU.NULL 変数はいずれかのパスで null が代入された後に一度も読み取られていません 4 True (真) いいえ
MNA.CAP メソッド名は大文字以外で始まる必要があります 4 True (真) いいえ
MNA.CNS メソッド名がコンストラクタ名と同じですが、コンストラクタではありません 4 True (真) いいえ
MNA.SUS 疑わしいメソッド名 4 True (真) いいえ
NPE.COND null チェック後の null ポインタを参照しています 1 True (真) はい
NPE.CONST null 定数が代入されたオブジェクトを参照しています 1 True (真) はい
NPE.RET メソッドから返された null ポインタを参照しています 1 True (真) はい
NPE.RET.UTIL マップまたはコレクションから返されたnull 値を参照しています 1 True (真) はい
NPE.STAT 戻り値の null ポインタ 参照 (統計情報) 4 False (偽) はい
REDUN.DEF 式を自分自身に代入しています。 4 True (真) いいえ
REDUN.EQ equals() の両側に同じ式が指定された疑わしい呼び出しです 4 True (真) いいえ
REDUN.EQNULL equals() に式と null が指定された疑わしい呼び出しです(決して true にはなりません) 4 True (真) いいえ
REDUN.FINAL 'final' 修飾子が冗長です 4 True (真) いいえ
REDUN.NULL null 定数の代わりに変数が使用されています 4 True (真) いいえ
REDUN.OP 両側に同じ式が指定された疑わしい演算です 4 True (真) いいえ
RI.IGNOREDCALL immutable オブジェクトに対して呼び出されたメソッドから返された値が無視されています 4 True (真) いいえ
RI.IGNOREDNEW 新規に作成されたオブジェクトが無視されています 4 True (真) いいえ
RLK.AWT AWT オブジェクトが終了時に破棄されていません 1 True (真) はい
RLK.FIELD フィールドに保存されたシステム リソースがリークする可能性があります 4 True (真) いいえ
RLK.HIBERNATE Hibernate オブジェクトが終了時に閉じられていません 1 True (真) はい
RLK.IMAGEIO ImageIO ストリームが終了時に閉じられていません 1 True (真) はい
RLK.IN 入力ストリームが終了時に閉じられていません 1 True (真) はい
RLK.JNDI JNDI コンテキストが終了時に閉じられていません 1 True (真) はい
RLK.JPA {3} オブジェクトが終了時に閉じられていません。 1 True (真) はい
RLK.MAIL JavaMail オブジェクトが終了時に閉じられていません 1 True (真) はい
RLK.MICRO Java Microedition 接続が終了時に閉じられていません 1 True (真) はい
RLK.NIO NIO オブジェクトが終了時に閉じられていません 1 True (真) はい
RLK.OUT 出力ストリームが終了時に閉じられていません 1 True (真) はい
RLK.SOCK ソケットが終了時に閉じられていません 1 True (真) はい
RLK.SQLCON Sql 接続が終了時に閉じられていません 1 True (真) はい
RLK.SQLOBJ Sql オブジェクトが終了時に閉じられていません 1 True (真) はい
RLK.SWT SWT オブジェクトが終了時に破棄されていません 1 True (真) はい
RLK.ZIP Zip ファイルが終了時に閉じられていません 1 True (真) はい
RNU.THIS this と null が比較されていますが、this は null になり得ません 4 True (真) いいえ
RR.IGNORED 戻り値が無視されています 4 True (真) いいえ
RTC.CALL 型変換は冗長です 4 True (真) いいえ
SPRING.AUTHC.ABSENT 重要なリソースに対する設定の欠落 2 False (偽) いいえ
SPRING.AUTHC.MISSING 重要な機能に対する認証の欠落 2 True (真) いいえ
SPRING.AUTHZ.ABSENT 保護されたリソース用の構成はありません 2 False (偽) いいえ
SPRING.AUTHZ.MISSING 認証の欠落 2 True (真) いいえ
STRCON.LOOP ループ内でStringオブジェクトに対して append が使用されています 4 True (真) いいえ
SV.AUTH.BYPASS.MIGHT 不正確な認証 2 True (真) はい
SV.AUTH.BYPASS.MUST 不正確な認証 2 True (真) はい
SV.AUTH.HASH.MIGHT 脆弱な暗号化アルゴリズムの使用 3 True (真) はい
SV.AUTH.HASH.MUST 脆弱な暗号化アルゴリズムの使用 3 True (真) はい
SV.CERT.INVALID 証明書は、証明書パスを構築することで、検証する必要があります。 1 True (真) はい
SV.CLASSDEF.INJ ランタイムクラス定義インジェクション 2 True (真) はい
SV.CLASSLOADER.INJ クラスローダー URL インジェクション 2 True (真) はい
SV.CLEXT.CLLOADER クラスが 'java.lang.ClassLoader' を拡張しています 4 False (偽) いいえ
SV.CLEXT.POLICY クラスが 'java.security.Policy' を拡張しています 4 False (偽) いいえ
SV.CLLOADER クラスローダが直接使用されています 4 False (偽) いいえ
SV.CLONE.SUP クラスは 'clone' メソッドを実装していますが、Cloneable を実装していません 4 False (偽) いいえ
SV.CSRF.GET GET リクエスト中の CSRF トークン 4 False (偽) はい
SV.CSRF.ORIGIN オリジンチェックなしの要求ハンドラ 4 False (偽) はい
SV.CSRF.TOKEN CSRF チェックなしの状態変更要求ハンドラ 4 False (偽) はい
SV.DATA.BOUND 信頼できないデータが信頼できるストレージにリークしています 3 True (真) はい
SV.DATA.DB データ インジェクション 2 True (真) はい
SV.DATA.FILE 潜在的に有害なファイルがアップロードされ、自動的に処理される可能性があります 4 True (真) はい
SV.DOS.ARRINDEX 不正なインデックスが配列アクセスに使用されています 3 True (真) はい
SV.DOS.ARRSIZE 不正なサイズが配列割り当てに使用されています 3 True (真) はい
SV.DOS.TMPFILEDEL JVM のライフタイムの間一時ファイルが存続します 3 True (真) はい
SV.DOS.TMPFILEEXIT 一時ファイルが存続します 3 True (真) はい
SV.ECV クラスローダが直接使用されています 4 False (偽) いいえ
SV.ECV.TRUSTMANAGER X509TrustManager インターフェイスの実装が安全ではありません。 2 False (偽) いいえ
SV.EMAIL 未チェックの電子メール 2 True (真) はい
SV.EXEC プロセス インジェクション 2 True (真) はい
SV.EXEC.DIR プロセス インジェクション。作業ディレクトリ 2 True (真) はい
SV.EXEC.ENV プロセス インジェクション。環境変数 2 True (真) はい
SV.EXEC.LOCAL プロセス インジェクション。ローカル引数 3 True (真) はい
SV.EXEC.PATH 信頼できない検索パス 4 True (真) いいえ
SV.EXPOSE.FIELD static フィールドは悪意のあるコードによって変更される可能性があります 4 False (偽) いいえ
SV.EXPOSE.FIN finalize() メソッドは、public ではなく protected アクセス修飾子を使用する必要があります 4 False (偽) いいえ
SV.EXPOSE.IFIELD インスタンス フィールドは final にする必要があります 4 False (偽) いいえ
SV.EXPOSE.MUTABLEFIELD static mutable フィールドは悪意のあるコードによってアクセスされる可能性があります 4 False (偽) いいえ
SV.EXPOSE.RET 内部表現が露出される可能性があります 4 False (偽) いいえ
SV.EXPOSE.STORE メソッドが mutable オブジェクトへの参照を保存しています 4 False (偽) いいえ
SV.HASH.NO_SALT ソルトなしの一方向性暗号化ハッシュの使用 3 True (真) いいえ
SV.HTTP_SPLIT HTTP 応答分割 2 True (真) はい
SV.IL.DEV 設計情報の漏洩 3 True (真) はい
SV.IL.FILE ファイル名のリーク 3 True (真) はい
SV.IL.SESSION セッション ID のログ記録 3 True (真) はい
SV.IL.SESSION.CLIENT HttpServletRequest.getRequestedSessionId メソッドは使用しないでください。 4 True (真) はい
SV.INT_OVF 不正データが整数オーバーフローを引き起こす可能性があります 2 True (真) はい
SV.LDAP 未検証のユーザ入力が LDAP フィルタとして使用されています 2 True (真) はい
SV.LDAP.ANON 不正確な認証 4 True (真) はい
SV.LOADLIB.INJ 'loadLibrary' メソッドに対する信頼できない呼び出し 4 True (真) いいえ
SV.LOG_FORGING ログの偽造 3 True (真) はい
SV.PASSWD.HC ハードコードされたパスワード 2 True (真) はい
SV.PASSWD.HC.EMPTY 空のパスワード 2 True (真) はい
SV.PASSWD.HC.MINLEN 長さが 15 文字以上のハードコードされたパスワード 2 True (真) はい
SV.PASSWD.PLAIN プレーンテキストのパスワード 2 True (真) はい
SV.PASSWD.PLAIN.HC プレーンテキストのパスワード 2 True (真) はい
SV.PATH パスまたはファイル名のインジェクション 3 True (真) はい
SV.PATH.INJ ファイル インジェクション 3 True (真) はい
SV.PERMS.HOME パーミッションを設定せずに、ユーザーのホームディレクトリに作成されるファイル 2 True (真) はい
SV.PERMS.WIDE 広すぎるパーミッション 4 True (真) はい
SV.PRIVILEGE.MISSING 呼び出されるメソッドは doPrivileged ブロック内にあってはなりません 4 True (真) いいえ
SV.RANDOM 安全ではない乱数ジェネレータの使用 4 True (真) いいえ
SV.SCRIPT スクリプトの実行 2 True (真) はい
SV.SENSITIVE.DATA 暗号化されていない機密データが書き込まれます 2 True (真) はい
SV.SENSITIVE.OBJ 暗号化されていない機密データを持つオブジェクトが保存されます 2 True (真) いいえ
SV.SERIAL.INON インタフェースが 'Serializable' を拡張しています 4 False (偽) いいえ
SV.SERIAL.NOFINAL シリアル化可能なクラスでは、メソッド readObject() および writeObject() は final である必要があります 4 False (偽) いいえ
SV.SERIAL.NON クラスが 'Serializable' を実装しています 4 False (偽) いいえ
SV.SERIAL.NOREAD メソッド readObject() を Serializable クラスに対して定義する必要があります 4 False (偽) いいえ
SV.SERIAL.NOWRITE メソッド writeObject() を Serializable クラスに対して定義する必要があります 4 False (偽) いいえ
SV.SERIAL.OVERRIDE readObject() メソッドからオーバーライド可能なメソッドを呼び出さないでください 4 True (真) いいえ
SV.SERIAL.SIG Serializable クラスのメソッド readObject() および writeObject() が正しいシグネチャを持つ必要があります 4 False (偽) いいえ
SV.SESSION.FIXATION.COOKIE cookie は、セッションの固定化に対して脆弱であってはなりません 4 True (真) はい
SV.SHARED.VAR サーブレットから static 変数への非同期アクセス 4 True (真) いいえ
SV.SOCKETS 好ましくない手法:ソケットの使用 4 False (偽) いいえ
SV.SPRING.FIXATION セッション固定化保護が無効になっています。 2 True (真) はい
SV.SQL SQL インジェクション 2 True (真) はい
SV.SQL.DBSOURCE 未検証のデータベースからの情報がSQL文に使用されています 3 True (真) はい
SV.SSRF.URI 無効化されたユーザー入力に基づく URI です。 4 True (真) はい
SV.STRBUF.CLEAN 文字列バッファが削除されていません 3 False (偽) はい
SV.STRUTS.NOTRESET ステータス フォーム:リセットが整合していません 4 False (偽) いいえ
SV.STRUTS.NOTVALID ステータス フォーム:検証が整合していません 4 False (偽) いいえ
SV.STRUTS.PRIVATE ステータス フォーム: non-private フィールド 4 False (偽) いいえ
SV.STRUTS.RESETMET ステータス フォーム: reset メソッド 4 False (偽) いいえ
SV.STRUTS.STATIC ステータス フォーム: static フィールド 4 False (偽) いいえ
SV.STRUTS.VALIDMET ステータス フォーム: validate メソッド 4 False (偽) いいえ
SV.STRUTS.VER 脆弱な Apache Struts バージョンの使用 2 True (真) いいえ
SV.TAINT 不正データ 3 False (偽) はい
SV.TAINT_NATIVE 不正データがネイティブ コードに渡されています 3 True (真) はい
SV.TMPFILE 一時ファイルのパス改ざん 3 True (真) はい
SV.UMC.EXIT System.exit() および Runtime.exit() メソッドの呼び出しをサーブレット コードで使用すべきではありません 4 False (偽) いいえ
SV.UMC.JDBC アプリケーションが DriverManager.getConnection() を直接呼び出すことは避けるべきです 4 False (偽) いいえ
SV.UMC.THREADS 好ましくない手法:スレッド管理の使用 4 False (偽) いいえ
SV.UMD.MAIN デバッグ コードの削除忘れ - main メソッド 4 False (偽) いいえ
SV.USE.POLICY Policy のメソッドが直接使用されています 4 False (偽) いいえ
SV.WEAK.CRYPT 破られたまたは危険な暗号化アルゴリズムの使用 3 True (真) いいえ
SV.WEAK.KEYS.AES 暗号化アルゴリズムのキー長さが不十分です 3 True (真) はい
SV.WEAK.KEYS.DH 暗号化アルゴリズムのキー長さが不十分です 3 True (真) はい
SV.WEAK.KEYS.DSA 暗号化アルゴリズムのキー長さが不十分です 3 True (真) はい
SV.WEAK.KEYS.EC 暗号化アルゴリズムのキー長さが不十分です 3 True (真) はい
SV.WEAK.KEYS.RSA 暗号化アルゴリズムのキー長さが不十分です 3 True (真) はい
SV.WEAK.TLS 脆弱な SSL/TLS プロトコルは使用しないでください。 2 True (真) はい
SV.XPATH 未検証のユーザ入力が XPath 式として使用されています 2 True (真) はい
SV.XSS.COOKIE setHttpOnly フラグのない機密性の高い cookie 4 True (真) はい
SV.XSS.COOKIE.SECURE 安全なプロトコルがなくても反応する cookie 1 True (真) はい
SV.XSS.DB クロスサイト スクリプティング (Stored XSS) 2 True (真) はい
SV.XSS.REF クロスサイト スクリプティング (Reflected XSS) 2 True (真) はい
SV.XXE.DBF XML 外部実体攻撃の可能性 4 True (真) いいえ
SV.XXE.SF XML 外部実体攻撃の可能性 4 True (真) いいえ
SV.XXE.SPF XML 外部実体攻撃の可能性 4 True (真) いいえ
SV.XXE.TF XML 外部実体攻撃の可能性 4 True (真) いいえ
SV.XXE.XIF XML 外部実体攻撃の可能性 4 True (真) いいえ
SV.XXE.XRF XML 外部実体攻撃の可能性 4 True (真) いいえ
SYNCH.NESTED 同期化されたメソッドが同じロックを保持する別の同期化されたメソッドを呼び出しています 4 True (真) いいえ
SYNCH.NESTEDS 同期化された static メソッドが同じロックを保持する別の同期化された static メソッドを呼び出しています 4 True (真) いいえ
UC.BOOLB ブール式からの new Boolean オブジェクトの作成は不要です 4 True (真) いいえ
UC.BOOLS 文字列式からの new Boolean オブジェクトの作成は不要です 4 True (真) いいえ
UC.STRS 文字列式からの new String オブジェクトの作成は不要です 4 True (真) いいえ
UC.STRV 空の文字列オブジェクトの作成は不要です 4 True (真) いいえ
UF.IMAGEIO 閉じた ImageIO ストリームの利用 2 True (真) はい
UF.IN 閉じた入力ストリームの利用 2 True (真) はい
UF.JNDI 閉じた JNDI コンテキストの利用 2 True (真) はい
UF.MAIL 閉じた Java mail オブジェクトの利用 2 True (真) はい
UF.MICRO 閉じた Java Microedition 接続の利用 2 True (真) はい
UF.NIO 閉じた NIO オブジェクトの利用 2 True (真) はい
UF.OUT 閉じた出力ストリームの利用 2 True (真) はい
UF.SOCK 閉じたソケットの利用 2 True (真) はい
UF.SQLCON 閉じた SQL 接続の利用 2 True (真) はい
UF.SQLOBJ 閉じた SQL オブジェクトの利用 2 True (真) はい
UF.ZIP 閉じた Zip ファイルの利用 2 True (真) はい
UMC.EXIT System.exit() メソッドの呼び出しは好ましくありません 4 False (偽) いいえ
UMC.GC System.gc() メソッドの呼び出しは好ましくありません 4 False (偽) いいえ
UMC.SYSERR System.err メソッドの呼び出しを使用したデバッグ プリントは好ましくありません 4 False (偽) いいえ
UMC.SYSOUT System.out メソッドの呼び出しを使用したデバッグ プリントは好ましくありません 4 False (偽) いいえ
UMC.TOSTRING 不要な toString() メソッドが String 引数に対して呼び出されています 4 True (真) いいえ