Junior — Middle
Welke soorten verzoeken beschouw je als het veiligst en waarom?
sobes.tech AI
Antwoord van AI
De meest veilige zijn de geparametreerde (prepared) queries en ORM-queries, die automatisch de invoergegevens escapen.
De reden is dat ze SQL-injecties voorkomen — wanneer een aanvaller kwaadaardige SQL-code invoert via de gebruikersinvoer.
Voorbeeld:
-
Bij een geparametreerde query worden de parameters apart van de SQL-code doorgegeven, wat de mogelijkheid tot het wijzigen van de query-structuur uitsluit.
-
In tegenstelling tot stringconcatenatie, waarbij de gebruikersinvoer direct in de query wordt geplaatst.
Bijvoorbeeld in Java met JDBC:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Deze aanpak is veiliger dan:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Daarom wordt aanbevolen om voor veiligheid tijdens testen en ontwikkeling geparametreerde queries te gebruiken.