Sobes.tech
Junior — Middle

Quels types de requêtes considérez-vous comme les plus sûrs et pourquoi?

sobes.tech IA

Réponse de l'IA

Les plus sûrs sont les requêtes paramétrées (prepared) et les requêtes ORM, qui échappent automatiquement les données d'entrée.

La raison en est qu'elles préviennent les injections SQL, lorsque un attaquant insère du code SQL malveillant via l'entrée utilisateur.

Exemple :

  • Dans une requête paramétrée, les paramètres sont passés séparément du code SQL, ce qui exclut la possibilité de modifier la structure de la requête.

  • Contrairement à la concaténation de chaînes, où l'entrée utilisateur est insérée directement dans la requête.

Par exemple, en Java avec JDBC :

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

Cette approche est plus sûre que :

String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);

Par conséquent, pour la sécurité lors des tests et du développement, il est recommandé d'utiliser des requêtes paramétrées.