Il modo migliore per convalidare l'input dell'utente JDBC?
-
02-07-2019 - |
Domanda
Esiste un modo integrato per sfuggire all'input dell'utente in Java usando il JDBC
? Qualcosa di simile alla versione php mysql_real_escape ()
. Qual è il modo migliore per convalidare l'input?
Soluzione
Se intendi come assicurarti che l'input dell'utente non possa essere utilizzato negli attacchi SQL injection, il modo per farlo (e il modo in cui tutti gli SQL dovrebbero essere scritti in JDBC) sta usando le istruzioni preparate. JDBC gestirà automaticamente l'eventuale escape necessario.
http://java.sun.com/docs /books/tutorial/jdbc/basics/prepared.html
Altri suggerimenti
Solo per aggiungere al suggerimento di @skaffman, PreparedStatements risolve il problema per la maggior parte delle applicazioni. Tuttavia, ci sono alcune applicazioni in cui (parti di) istruzioni SQL (anziché solo valori di parametri) sono prese dall'input dell'utente (ad esempio un parametro URL contenente la clausola ORDER BY). Assicurati di disinfettare anche quelli o, meglio ancora, di evitare tali progetti, se possibile.