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