Sobes.tech
Junior — Middle

Jaké typy dotazů považujete za nejbezpečnější a proč?

sobes.tech AI

Odpověď od AI

Nejbezpečnější jsou parametrizované (prepared) dotazy a ORM dotazy, které automaticky escapují vstupní data.

Důvodem je, že zabraňují SQL injekcím — když útočník vloží škodlivý SQL kód přes uživatelský vstup.

Příklad:

  • U parametrizovaného dotazu jsou parametry předávány odděleně od SQL kódu, což vylučuje možnost změny struktury dotazu.

  • Na rozdíl od spojování řetězců, kde je uživatelský vstup přímo vložen do dotazu.

Napří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 přístup je bezpečnější než:

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

Proto je vhodné používat parametrizované dotazy pro bezpečnost při testování a vývoji.