"LIKE"dagi zaiflik
LIKE'da faqat bitta zaiflik bor: bu operatordan noto'g'ri foydalanish. Shu bilan birga, hech kim, agar LIKE ishlatilsa, metabelgi bo'lishi kerak deb yozmaydi . Aks holda, LIKE ning ma'nosi yo'q. Ya'ni, bu zaiflik uchun to'g'ri chora % va _ belgilardan qochib qutulish emas, balki bizni aniq moslik qiziqtirgan bu funksiyadan foydalanmaslik - masalan, parolni tekshirish. Hammasi shu.
SQL in'ektsiyasi. Tekshirish, buzish, himoya qilish
SQL in'ektsiyasi saytni buzishning eng qulay usullaridan biridir.
Bunday in'ektsiyalarning mohiyati ma'lumotlarga o'zboshimchalik bilan SQL kodini kiritishdir (GET, POST so'rovlari yoki Cookie qiymatlari orqali uzatiladi). Agar sayt zaif bo'lsa va bunday in'ektsiyalarni amalga oshirsa, unda aslida ma'lumotlar bazasi bilan har qanday narsani yaratish mumkin (ko'pincha bu MySQL) .
SQL in'ektsiyasiga ruxsat beruvchi zaiflikni qanday topish mumkin?
Juda oson. Masalan, test.ru test sayti mavjud . Sayt batafsil ko'rish imkoniyati bilan yangiliklar ro'yxatini ko'rsatadi . Yangilikning batafsil tavsifi bilan sahifaning manzili quyidagicha ko'rinadi: test.ru/?detail=1. Ya'ni , GET so'rovi orqali batafsil o'zgaruvchi 1 qiymatidan o'tadi (bu yangiliklar jadvalidagi yozuv identifikatori ).
GET so'rovi ga o'zgartirilsinmi ?detail=1' yoki ?detail=1" . Keyinchalik, biz ushbu so'rovlarni serverga yuborishga harakat qilamiz, ya'ni test.ru/?detail=1' yoki test.ru/?detail=1".
Agar ushbu sahifalarga kirishda xatolik yuzaga kelsa, u holda sayt SQL in'ektsiyasiga qarshi himoyasizdir.
Zaiflikni tekshirishda yuzaga keladigan xatolik misoli
Mumkin SQL in'ektsiyalari (SQL Injection)
Eng oddiylari har qanday parametr qiymatlari uchun WHERE shartini haqiqiy natijaga katlaydi.
2) Boshqa so'rov natijalarini so'rovga biriktirish. Bu UNION operatori orqali amalga oshiriladi.
3) So'rovning bir qismini sharhlash.
Amaliyot. SQL in'ektsiyasida zaifligi bo'lgan saytni buzish imkoniyatlari
Shunday qilib, bizda allaqachon aytib o'tilgan test.ru sayti mavjud. Ma'lumotlar bazasida 4 ta yangilik saqlanadi, ulardan 3 tasi ko'rsatiladi. Yangiliklarni nashr qilish uchun ruxsat parametrga bog'liq ommaviy (agar parametr 1 qiymatini o'z ichiga olgan bo'lsa, u holda yangiliklar nashr etiladi).
E'lon qilishga ruxsat berilgan yangiliklar ro'yxati
test.ru/?detail=4, sahifasiga kirganingizda bu to'rtinchi yangilikni ko'rsatishi kerak, xato paydo bo'ladi - yangilik topilmadi.
Bizning holatlarimizda yangiliklar mavjud, ammo uni nashr etish taqiqlanadi.
Ammo biz allaqachon saytni zaifliklar bor-yo'qligini tekshirganimiz va u ma'lumotlar bazasida xatolik berganligi sababli, biz mumkin bo'lgan so'rov variantlarini saralashga harakat qilmoqdamiz.Manzil satrida ortiqcha (+) bo'sh joy vazifasini bajaradi, shuning uchun qo'rqmang
Do'stlaringiz bilan baham: |