動的に作成される文字列をプリペアドステートメントとして受け取っている java.sql.Connection.prepareStatement()java.sql.Connection.prepareCall()、またはそのバリアントの呼び出しを報告します。

動的に作成される SQL ステートメントは、一般的にセキュリティ違反の元になります。 このインスペクションはデフォルトではコンパイル時の定数を無視します。

例:


  String bar() { return "bar"; }

  Connection connection = DriverManager.getConnection("", "", "");
  connection.("SELECT * FROM user WHERE name='" + bar() + "'");
すべての static final フィールドを定数と見なすには、インスペクション設定を使用します。 このオプションが有効な場合、次のような文字列は無視されますので注意してください。

  static final String SQL = "SELECT * FROM user WHERE name='" + getUserInput() + "'";