Sobes.tech
Junior — Middle

Koje vrste zahteva smatrate najsigurnijim i zašto?

sobes.tech АИ

Одговор од АИ

Најбезбедније су параметризоване (prepared) упите и ORM упити, који аутоматски ескейпирају улазне податке.

Разлог је што спречавају SQL инјекције — када нападач убацује злонамерни SQL код преко корисничког улаза.

Пример:

  • У параметризованом упиту, параметри се преносе одвојено од SQL кода, што искључује могућност промене структуре упита.

  • За разлику од конкатенације стрингова, где се кориснички улаз директно убацује у упит.

На пример, у Јави са JDBC-јем:

String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();

Овај приступ је безбеднији од:

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

Због тога се за безбедност током тестирања и развоја препоручује коришћење параметризованих упита.