Junior — Middle
Hangi sorgu türlerini en güvenli buluyorsunuz ve neden?
sobes.tech yapay zeka
AI'dan gelen yanıt
En güvenli olanlar, hazırlanmış (prepared) sorgular ve ORM sorgularıdır; bunlar giriş verilerini otomatik olarak kaçırır.
Bunun nedeni, bunların SQL enjeksiyonlarını önlemesidir — saldırganın kötü niyetli SQL kodunu kullanıcı girişi aracılığıyla enjekte etmesi durumunda.
Örnek:
-
Parametreli bir sorguda, parametreler SQL kodundan ayrı olarak iletilir, bu da sorgu yapısının değiştirilmesini engeller.
-
Stringlerin birleştirilmesinden farklı olarak, burada kullanıcı girişi doğrudan sorguya eklenir.
Örneğin, Java'da JDBC ile:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Bu yaklaşım, şu şekilde olanlardan daha güvenlidir:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Bu nedenle, güvenlik için test ve geliştirmede parametreli sorgular kullanılması önerilir.