PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come proteggersi dall'iniezione SQL quando la clausola WHERE viene compilata dinamicamente dal modulo di ricerca?

Hai visto JDBC NamedParameterJDBCTemplate ?

Puoi fare cose come:

String sql = "select count(0) from T_ACTOR where first_name = :first_name";
SqlParameterSource namedParameters = new MapSqlParameterSource("first_name", firstName);
return namedParameterJdbcTemplate.queryForInt(sql, namedParameters);

e crea la tua stringa di query in modo dinamico, quindi crea il tuo SqlParameterSource allo stesso modo.