<- Ortga qaytish
[ Web Security ]

SQL Injection (SQLi) nima? Sodda va tushunarli tilda

Chop etildi: 2026-08-15

SQL Injection (SQLi) — web-saytlardagi eng keng tarqalgan va xavfli zaifliklardan biri. Ya'ni OWASP Top 10 ro'yxatida hamisha birinchi o'ntalikdan joy oladi. Murakkab texnik atamalarsiz, buni eng sodda hayotiy misol bilan tushuntiraman.


💡 Hayotiy misol: Kutubxona

Tasavvur qiling, katta kutubxonada sizga yordam beradigan bitta xodim bor. Siz unga: "Menga 'Xavfsizlik' mavzusidagi kitobni olib bering" deysiz. Xodim esa sizning so'rovingizni qog'ozga qog'ib, rafi yonidan qidiradi. Hozirgacha hammasi normal.

Ammo bir kuni bitta ayyor odam kelib shunday deydi: "Menga kitob bering... va, iltimos, kutubxona zaxirasi ro'yxatini ham olib keling!"

• Xodim yetarlicha malakaga ega bo'lmasa, u bu so'rovni so'zma-so'z bajaradi: bir kitob o'rniga butun kutubxona fayllarini olib kelib beradi.


💻 Saytda bu qanday sodir bo'ladi?

Saytlarda ma'lumotlar Database'da (masalan, SQL tizimlarida) saqlanadi. Sayt foydalanuvchi kiritgan ma'lumotni oddiygina so'rovga yopishtirib qo'ysa:

Normal so'rov:
SELECT * FROM users WHERE login = 'admin'

Hujumchi login maydoniga boshqa hech narsa o'rniga quyidagini kiritadi:
' OR '1'='1

Natijada so'rov quyidagicha bo'ladi:

SELECT * FROM users WHERE login = '' OR '1'='1'

'1'='1' sharti har doim to'g'ri ekanligi uchun bu so'rov barcha foydalanuvchilarni qaytaradi. Hujumchi esa parolsiz tizimga kirib oladi!


🎯 Nega bu xavfli?

SQL Injection yordamida hujumchi:
• Barcha foydalanuvchilar ro'yxati va parollarini o'g'irlashi;
• Ma'lumotlarni o'chirishi yoki o'zgartirishi;
• Ba'zi hollarda serverni to'liq egallab olishi (masalan, xp_cmdshell kabi mexanizmlar orqali).


🛡️ Qanday himoyalanadi?

  • Prepared Statements (Parametrlangan so'rovlar): Foydalanuvchi ma'lumotini SQL so'roviga to'g'ridan-to'g'ri yopishtirmasdan, faqat parametr sifatida uzatish.
  • Input validation: Foydalanuvchi kiritgan qiymatlarni turiga qarab tekshirish (masalan, login maydoniga faqat harflar va raqamlar qo'yish).
  • Eng kam huquqlar tamoyili: Database'ga ulanadigan akkauntga faqat kerakli huquqlarni berish.
  • Xatolardagi ma'lumotni yashirish: Saytga SQL xatolarini foydalanuvchiga to'liq ko'rsatmaslik.

Xulosa: SQL Injection — bu hujumchining saytdagi so'rovga o'z SQL kodini "qo'shib yuborishi"dir. Xavfsiz dasturchi har doim foydalanuvchi kiritgan ma'lumotni parametrlangan so'rovlar orqali ishlatadi va hech qachon unga to'liq ishonmaydi.


📚 O'xshash maqolalar