PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie schützt man sich vor SQL-Injection, wenn die WHERE-Klausel dynamisch aus dem Suchformular erstellt wird?

Haben Sie den JDBC NamedParameterJDBCTemplate ?

Sie können Dinge tun wie:

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);

und erstellen Sie Ihre Abfragezeichenfolge dynamisch und erstellen Sie dann Ihre SqlParameterSource ähnlich.