動的に作成される文字列を実行クエリとして受け取っている java.sql.Statement.execute() か、そのバリアントの呼び出しを報告します。

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

例:


  ResultSet execute(Statement statement, String name) throws SQLException {
    return statement.executeQuery("select * from " + name); // 警告を報告します
  }

すべての static final フィールドを定数と見なすには、インスペクションオプションを使用します。 このオプションが有効な場合、次のような文字列は無視されますので注意してください。


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