Junior — Middle
Quali tipi di richieste ritieni più sicuri e perché?
sobes.tech AI
Risposta dell'AI
I metodi più sicuri sono le query parametrizzate (prepared) e le query ORM, che escapano automaticamente i dati di input.
Il motivo è che prevengono le injection SQL — quando un attaccante inserisce codice SQL dannoso attraverso l'input dell'utente.
Esempio:
-
In una query parametrizzata, i parametri vengono passati separatamente dal codice SQL, escludendo la possibilità di modificare la struttura della query.
-
A differenza della concatenazione di stringhe, dove l'input dell'utente viene inserito direttamente nella query.
Per esempio, in Java con JDBC:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Questo metodo è più sicuro rispetto a:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Perciò, per la sicurezza nei test e nello sviluppo, si raccomanda di usare query parametrizzate.