Junior — Middle
JDBC'da parametrlar orqali SQL kodini kiritish bilan bog'liq zaifliklarni qanday oldini olish mumkin?
sobes.tech AI
AIdan javob
JDBC orqali parametrlar yordamida SQL injektsiyasiga oid zaifliklarni oldini olish uchun quyidagi usullar qo'llaniladi:
-
PreparedStatement — parametrli so'rovlar ishlatish, bu yerda parametrlar alohida uzatiladi va to'g'ridan-to'g'ri SQL satriga kiritilmaydi. Bu parametrlarning kod sifatida talqin qilinishining oldini oladi.
-
Kiritilgan ma'lumotlarni tekshirish va qochirish — so'rovlar uchun foydalanishdan oldin ma'lumotlarni tekshirish va tozalash.
-
ORM ishlatish — masalan, Hibernate, ular avtomatik ravishda xavfsiz so'rovlar yaratadi.
PreparedStatement dan foydalanish misoli:
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
Bu yondashuv parametrlar orqali zararli SQL kodlarini kiritish imkoniyatini oldini oladi.