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