Junior — Middle
Aké typy požiadaviek považujete za najbezpečnejšie a prečo?
sobes.tech AI
Odpoveď od AI
Najbezpečnejšie sú parametrizované (prepared) dotazy a ORM dotazy, ktoré automaticky escapujú vstupné údaje.
Dôvod je, že zabraňujú SQL injekciám — keď útočník vloží škodlivý SQL kód cez používateľský vstup.
Príklad:
-
Pri parametrizovanom dotaze sú parametre odovzdávané oddelene od SQL kódu, čím vylučujú možnosť zmeny štruktúry dotazu.
-
Na rozdiel od spájania reťazcov, kde je používateľský vstup priamo vložený do dotazu.
Napríklad v Java s JDBC:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Tento prístup je bezpečnejší než:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Preto sa odporúča používať parametrizované dotazy pre bezpečnosť pri testovaní a vývoji.