Junior — Middle
Qaysi so'rov turlari eng xavfsiz deb hisoblaysiz va nima uchun?
sobes.tech AI
AIdan javob
Eng xavfsizlari parametrlangan (prepared) so'rovlar va ORM-so'rovlar hisoblanadi, ular avtomatik ravishda kirish ma'lumotlarini qochiradi.
Ularning sababi, ular SQL-in'ektsiyalarini oldini oladi — bu yerda hujumchi foydalanuvchi kiritmasi orqali zararli SQL kodini joylashtiradi.
Misol:
-
Parametrlangan so'rovda, parametrlar SQL kodidan alohida uzatilib, so'rov tuzilmasini o'zgartirish imkoniyatini cheklaydi.
-
Stringlarni birlashtirishdan farqli o'laroq, bu yerda foydalanuvchi kiritmasi to'g'ridan-to'g'ri so'rovga qo'shiladi.
Masalan, Java bilan JDBC:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Bu yondashuv, quyidagidan ko'ra xavfsizroq:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Shuning uchun, xavfsizlik uchun test va rivojlanishda parametrlangan so'rovlar ishlatishni tavsiya etamiz.