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