SQL Injection nədir?
SQL Injection (SQL inyeksiyası) — hakerin veb saytın giriş sahəsinə (forma, axtarış xanası, URL) zərərli SQL kodu yerləşdirərək verilənlər bazasına icazəsiz sorğu göndərməsinə əsaslanan kiber hücumdur. Nəticədə haker gizli məlumatları oxuya, dəyişə və ya silə bilər.
Sadə desək: sayt istifadəçidən ad soruşur, haker isə ad əvəzinə saytı aldadan xüsusi mətn yazır. Sayt həmin mətni məlumat yox, əmr kimi başa düşür.
SQL Injection necə işləyir?
Tutaq ki, giriş formasında sayt belə sorğu qurur:
SELECT * FROM users WHERE login = 'ad' AND parol = 'şifrə';
Haker login xanasına ' OR '1'='1 yazarsa, sorğunun şərti həmişə doğru olur və parol yoxlanılmadan sistemə daxil olmaq mümkündür. Səbəb: istifadəçinin daxil etdiyi mətn heç bir yoxlama olmadan sorğunun içinə birbaşa qoşulub.
Hücumun növləri
- In-band (klassik): Nəticə eyni səhifədə görünür, məsələn, səhv mesajlarından və ya birləşdirilmiş sorğulardan istifadə olunur.
- Blind (kor): Səhifədə nəticə görünmür, haker saytın cavabına (doğru/yanlış, gecikmə) baxaraq məlumatı addım-addım çıxarır.
- Out-of-band: Məlumat başqa kanal (məsələn, DNS və ya HTTP sorğusu) ilə xaricə göndərilir.
Nəticələri
- İstifadəçi adlarının, parolların və kart məlumatlarının oğurlanması
- Məlumatların dəyişdirilməsi və ya silinməsi
- Admin hesabına icazəsiz giriş
- Sistemin tam ələ keçirilməsi və şirkətin reputasiyasına zərbə
SQL Injection-dan necə qorunmaq olar?
- Parametrli sorğular (Prepared Statements): İstifadəçi məlumatı sorğudan ayrı ötürülür və heç vaxt kod kimi icra olunmur. Bu, ən effektiv müdafiədir.
- Giriş məlumatlarının yoxlanılması (validation): İstifadəçidən gələn hər şey yoxlanılmalıdır.
- Minimum səlahiyyət prinsipi: Verilənlər bazası istifadəçisinə yalnız lazım olan hüquqlar verilməlidir.
- Səhv mesajlarını gizlətmək: Bazanın daxili strukturunu göstərən mesajlar istifadəçiyə verilməməlidir.
- WAF (Web Application Firewall): Şübhəli sorğuları bloklayır.
Nəticə
SQL Injection — onilliklərdir məlum olan, lakin hələ də ən təhlükəli veb zəifliklərdən biridir. Əsas qayda sadədir: istifadəçi məlumatına heç vaxt etibar etmə. Bu məsələ kibertəhlükəsizlik mütəxəssislərinin və veb proqramçıların bilməli olduğu əsas biliklərdəndir.
İstəyirsiniz ki, bu biliyi praktikaya keçirib real nəticələr əldə edəsiniz? Kibertəhlükəsizlik kursumuzla addım-addım öyrənməyə başlayın. Ətraflı məlumat üçün linkə keçid edin: Kibertəhlükəsizlik kursu
Tez-tez verilən suallar
SQL Injection nədir? Hakerin veb saytın giriş sahəsinə zərərli SQL kodu yerləşdirərək verilənlər bazasına icazəsiz müraciət etməsidir. Nəticədə məlumat oğurlana, dəyişdirilə və ya silinə bilər.
SQL Injection-dan ən yaxşı qorunma üsulu hansıdır? Parametrli sorğular (prepared statements). Bu üsulla istifadəçi məlumatı sorğudan ayrı ötürülür və kod kimi icra olunmur.
