Junior — Middle
JDBC'de parametreler aracılığıyla SQL kodu enjeksiyonu ile ilgili güvenlik açıklarını nasıl önleyebiliriz?
sobes.tech yapay zeka
AI'dan gelen yanıt
JDBC üzerinden parametreler aracılığıyla SQL Enjeksiyonu ile ilgili güvenlik açıklarını önlemek için aşağıdaki yöntemler kullanılır:
-
PreparedStatement — parametreli sorgular kullanmak, burada parametreler ayrı olarak iletilir ve doğrudan SQL dizesine eklenmez. Bu, parametrelerin kod olarak yorumlanmasını engeller.
-
Giriş verilerinin doğrulanması ve kaçışması — verilerin sorgularda kullanılmadan önce kontrol edilip temizlenmesi.
-
ORM kullanımı — örneğin Hibernate, otomatik olarak güvenli sorgular oluşturur.
PreparedStatement kullanımına örnek:
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 yaklaşım, parametreler aracılığıyla zararlı SQL kodlarının enjeksiyonunu önler.