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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top