Sobes.tech
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.