Per ottenere alcuni dati sto creando una query sql :)
Ovviamente ci sono alcune parti di filtraggio e di ordinazione.prevenire l'iniezione sql in Oracle "order by" part
Per ottenere il risultato, utilizzo "NamedParameterJdbcTemplate" e quando ho bisogno di aggiungere qualcosa alla parte "where", utilizzo la mappa dei parametri per evitare l'iniezione.
Ma è diverso con la parte "ordine per", in quanto non vi è alcun escape automatico (ed è una parte di sql). Questa parte dell'ordine a volte è piena di dati dell'utente (direttamente), a volte inserisce alcuni parametri di ordinamento extra dal codice interno. C'è un problema: a volte questo campo di ordinamento contiene non solo il nome della colonna, ma una dichiarazione sql.
Ora ogni parametro per l'ordinamento viene sfuggito manualmente sostituendo alcuni caratteri (come ') alla stringa vuota, ma alcuni parametri che impostiamo per il nostro codice è un po' complesso per passare questa regola.
Qual è il modo migliore per impedire le iniezioni SQL nella parte di ordinamento della query, quando si utilizza il modello jdbc?
+1 per la cura :) – RedFilter
Possibile utilizzare 'PreparedStatement'? – Romain
Non so su jdbc ma è possibile utilizzare una variabile di binding in un 'ordine per' in Oracle. – Ben