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