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