동적으로 생성된 문자열을 실행할 쿼리로 간주하는 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() + "'";