Para obtener algunos datos estoy creando una consulta SQL :)
Por supuesto que hay algunas partes de filtrado y pedido.previene la inyección sql en Oracle "ordene por" parte
Para obtener el resultado utilizo "NamedParameterJdbcTemplate" y cuando necesito agregar algo a la parte "where", utilizo el mapa de parámetros para evitar la inyección.
Pero es diferente con la parte "ordenar por", ya que no hay escape automático (y es parte de sql). Esta parte de la orden a veces se llena con datos del usuario (directamente), a veces pone algunos parámetros de clasificación adicionales desde el código interno. Hay un problema: a veces este campo de ordenación contiene no solo el nombre de la columna, sino una declaración SQL.
Ahora cada parámetro para la clasificación se escapa manualmente reemplazando algunos caracteres (como ') por una cadena vacía, pero algunos parámetros que establecemos para nuestro código son un poco complejos para pasar esta regla.
¿Cuál es la mejor manera de evitar las inyecciones de sql en la parte de ordenar de la consulta, cuando se utiliza la plantilla jdbc?
+1 para cuidar :) – RedFilter
Posible usar 'PreparedStatement'? – Romain
No sé sobre jdbc pero es posible usar una variable de vinculación en un 'orden por' en Oracle. – Ben