Junior — Middle
Hansı sorğu növlərini ən təhlükəsiz hesab edirsiniz və niyə?
sobes.tech Süni İntellekt
AI-dan cavab
Ən təhlükəsiz olanlar, parametrik (prepared) sorğular və ORM sorğularıdır; bunlar avtomatik olaraq giriş məlumatlarını qaçırır.
Bunun səbəbi, onların SQL-injeksiyalarını qarşısını almasıdır — hücum edən istifadəçi girişindən zərərli SQL kodu yerləşdirir.
Nümunə:
-
Parametrik sorğuda, parametrlər SQL kodundan ayrı şəkildə verilir, bu da sorğunun strukturunun dəyişdirilməsinin qarşısını alır.
-
Stringlərin birləşdirilməsindən fərqli olaraq, burada istifadəçi girişi birbaşa sorğuya daxil edilir.
Məsələn, Java ilə JDBC-də:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, userInput);
ResultSet rs = ps.executeQuery();
Bu yanaşma, aşağıdakıdan daha təhlükəsizdir:
String sql = "SELECT * FROM users WHERE username = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Bu səbəbdən, təhlükəsizlik üçün test və inkişaf zamanı parametrik sorğular istifadə etmək tövsiyə olunur.