FixVibe
Covered by FixVibecritical

SQL Injection: ma'lumotlar bazasiga ruxsatsiz kirishni oldini olish

SQL in'ektsiyasi (SQLi) tajovuzkorlar ilovaning ma'lumotlar bazasi so'rovlariga xalaqit beradigan muhim zaiflikdir. Zararli SQL sintaksisini kiritish orqali tajovuzkorlar autentifikatsiyani chetlab o'tishlari, parollar va kredit karta ma'lumotlari kabi nozik ma'lumotlarni ko'rishlari yoki hatto asosiy serverni buzishlari mumkin.

CWE-89

SQL in'ektsiyasining ta'siri

SQL in'ektsiyasi (SQLi) buzg'unchiga dastur [S1] ma'lumotlar bazasiga qilgan so'rovlariga aralashishga imkon beradi. Asosiy ta'sir foydalanuvchi parollari, kredit karta ma'lumotlari va shaxsiy ma'lumotlar [S1] kabi nozik ma'lumotlarga ruxsatsiz kirishni o'z ichiga oladi.

Ma'lumotlarni o'g'irlashdan tashqari, tajovuzkorlar ko'pincha ma'lumotlar bazasi yozuvlarini o'zgartirishi yoki o'chirishi mumkin, bu esa dastur xatti-harakatlaridagi doimiy o'zgarishlarga yoki ma'lumotlarning yo'qolishiga olib keladi [S1]. Og'irligi yuqori bo'lgan holatlarda SQLi orqa tomon infratuzilmasini buzish, xizmat ko'rsatishni rad etish hujumlarini yoqish yoki tashkilot tizimlariga doimiy orqa eshikni taqdim qilish uchun kuchaytirilishi mumkin [S1]ZXCVFIXVIXZCV.

Ildiz sababi: Xavfli kirish bilan ishlash

SQL in'ektsiyasining asosiy sababi [S2] SQL buyrug'ida ishlatiladigan maxsus elementlarning noto'g'ri neytrallanishidir. Bu ilova SQL so'rovlarini tashqi ta'sirli kiritishni bevosita [S1][S2] so'rovlar qatoriga birlashtirganda sodir bo'ladi.

Kirish so'rovlar tuzilmasidan to'g'ri ajratilmaganligi sababli, ma'lumotlar bazasi tarjimoni foydalanuvchi kiritishining qismlarini [S2] harfiy ma'lumotlari sifatida emas, balki SQL kodi sifatida bajarishi mumkin. Ushbu zaiflik so'rovning turli qismlarida, jumladan SELECT bayonotlarida, INSERT qiymatlarida yoki UPDATE [S1] bayonotlarida namoyon bo'lishi mumkin.

Beton tuzatishlar va yumshatishlar

Parametrlangan so'rovlardan foydalaning

SQL in'ektsiyasini oldini olishning eng samarali usuli bu [S1] tayyorlangan bayonotlar sifatida ham tanilgan parametrlangan so'rovlardan foydalanishdir. Satrlarni birlashtirish o'rniga, ishlab chiquvchilar ma'lumotlar va [S2] kodini ajratishni ta'minlaydigan tuzilgan mexanizmlardan foydalanishlari kerak.

Eng kam imtiyozlar printsipi

Ilovalar [S2] vazifalari uchun zarur bo'lgan eng past imtiyozlardan foydalangan holda ma'lumotlar bazasiga ulanishi kerak. Veb-ilova hisobi ma'muriy imtiyozlarga ega bo'lmasligi va [S2] funktsiyasi uchun zarur bo'lgan maxsus jadvallar yoki operatsiyalar bilan cheklanishi kerak.

Kirishni tekshirish va kodlash

Parametrlashtirishning o'rnini bosmasa ham, kirish tekshiruvi [S2] chuqur himoyasini ta'minlaydi. Ilovalar qabul qilingan ma'lum strategiyadan foydalanishi kerak, u kiritilgan ma'lumotlar [S2] kutilgan turlar, uzunliklar va formatlarga mos kelishini tasdiqlaydi.

FixVibe buni qanday sinovdan o'tkazadi

FixVibe allaqachon eshikli active.sqli skaner moduli orqali SQL in'ektsiyasini qamrab oladi. Faol skanerlashlar faqat domen egaligini tekshirish va attestatsiyadan so'ng amalga oshiriladi. Tekshiruv so'rov parametrlari bilan bir xil kelib chiqqan GET so'nggi nuqtalarini tekshiradi, asosiy javobni o'rnatadi, SQL-ga xos boolean anomaliyalarni qidiradi va faqat bir nechta kechikish uzunligi bo'yicha vaqtni tasdiqlashdan keyin topilma haqida xabar beradi. Repository skanerlari, shuningdek, shablon interpolyatsiyasi bilan tuzilgan xom SQL qo'ng'iroqlarini belgilovchi code.web-app-risk-checklist-backfill orqali ildiz sababini avvalroq aniqlashga yordam beradi.