Sobes.tech
Junior — Middle

Come si possono prevenire le vulnerabilità legate all'iniezione di codice SQL tramite parametri in JDBC?

sobes.tech AI

Risposta dell'AI

Per prevenire vulnerabilità legate all'iniezione di SQL tramite parametri in JDBC, si utilizzano i seguenti metodi:

  • PreparedStatement — utilizzo di query parametrizzate, dove i parametri vengono passati separatamente e non inseriti direttamente nella stringa SQL. Questo impedisce l'interpretazione dei parametri come codice.

  • Validazione e escaping dei dati di input — verifica e pulizia dei dati prima dell'uso nelle query.

  • Utilizzo di ORM — ad esempio Hibernate, che genera automaticamente query sicure.

Esempio di utilizzo di PreparedStatement:

String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();

Questo metodo evita la possibilità di iniettare codice SQL dannoso tramite i parametri.