«veb dasturlar xavfsizligi»



Download 410,37 Kb.
bet10/14
Sana03.07.2022
Hajmi410,37 Kb.
#737373
1   ...   6   7   8   9   10   11   12   13   14
Bog'liq
kurs ishi1 (1)

31. To'liq ko'r in'ektsiya
Agar siz haqiqatan ham ko'r-ko'rona in'ektsiyangiz bo'lsa, ushbu usuldan foydalaning. Kutish vaqtlari bilan ehtiyot bo'ling.
Sintaksis:
Kechikishni kuting "vaqt" (S)
Funktsiya shunchaki protsessorni yuklamasdan belgilangan vaqtni kutadi.
Misollar:
agar (foydalanuvchini tanlang) \u003d "sa" kutish vaqtini kechiktirish "0: 0: 10"
ProductID \u003d 1; kutish vaqti "0: 0: 10" -
ProductID \u003d 1); kutish vaqti "0: 0: 10" -
ProductID \u003d 1 "; kutishning kechikishi" 0: 0: 10 "-
ProductID \u003d 1 "); kutish vaqti" 0: 0: 10 "-
ProductID \u003d 1)); kutish vaqti "0: 0: 10" -
ProductID \u003d 1 ")); kutish vaqti" 0: 0: 10 "-
Sintaksis:
BENCHMARK (qanday qilib buni amalga oshiring) (M)
Misol:
Agar mavjud bo'lsa (foydalanuvchi nomi "" "root" bo'lgan foydalanuvchini tanlasangiz) BENCHMARK (1000000000, MD5 (1))
Ildiz foydalanuvchisi tekshirilmoqda.
IF (TIZIMNI TO'G'RISIDA TANLASH) BENCHMARK (1000000, MD5 (1))
MySQL-da jadval mavjudligini tekshiring
Sintaksis:
pg_ uxlash vaqti (soniya) (P)
Berilgan soniyalar uchun uxlang.
uyqu (soniya) (M)
berilgan soniyalarga uyqu.
bms_pipe.receive_message (O)
berilgan soniyalarga uyqu.
Misol:
(NVL (ASCII (SUBSC ((((INJECTION))) ), 1) BOSHQA ikki tomonlama)
(INJECTION) - sizning so'rovingiz.
Agar shart to'g'ri bo'lsa, javob 10 soniya bo'ladi. Aks holda, javob 1 soniya bo'ladi

II.bob. Web dasturlarda SQL inyeksiyani qo’llash va undan himoya
2.1 Web dasturlarda SQL inyeksiyani qo’llashga misollar
Hujumni tushuntirish uchun, siz bitta muhim vositani yuklab olish uchun saytga borganingizni tasavvur qiling va siz buni faqat ro'yxatdan o'tgan foydalanuvchi amalga oshirishi mumkinligidan qo'rqasiz va ro'yxatdan o'tish, albatta pul talab qiladi costs Men oxirgi pulni qaytarib berishni xohlamayman, lekin dastursiz! Qanday qilib o'ylash vaqti keldi ma'lumotlar bazalariga kirish SQL. Masalan, PHP-da foydalanuvchi nomi va parolni tekshirish quyidagicha ko'rinishi mumkin:
$ result \u003d mysql_db_query ($ db, "SELECT * FROM $ jadval qayerda foydalanuvchi \u003d" $ login "VA
pass \u003d "$ parol" ");
$ num_rows \u003d mysql_num_rows ($ natija);
mysql_close ($ havola);
agar ($ num_rows! \u003d 0)
{
// avtoritet OK
}
yana
{
// AVTENTIKATsIYa Xato
}
Men ikkita sharhni qo'shdim, buning o'rniga "AUTHENTICATION OK" - kerak
parol va login to'g'ri bo'lsa, bajariladigan kodga o'ting. Yana bir "AUSTENTICATION XATOLARI" bu noto'g'ri kod ko'rsatilgan bo'lsa bajariladigan koddir. Agar siz anketani to'ldirsangiz, so'rov "http://www.server.com?login\u003duser&password\u003d31337" ga o'xshaydi, bu erda www.server.com nomi.
biz ulanmoqchi bo'lgan server. Biz qidirgan narsamizni topdik va shu bilan yana ishlashga qaytamiz SQL. Shunday qilib, avtorizatsiya uchun login va parolni ko'rsatishingiz kerak bo'lsa, u holda hosil bo'ladi SQL Talab quyidagicha bo'ladi:
TANLANG * QAYERDAN foydalanuvchilar, qayerda login \u003d "foydalanuvchi" VA
parol \u003d "31337"
Bu shunga o'xshash narsani anglatadi: foydalanuvchi ma'lumotlar bazasidagi barcha yozuvlarni menga qaytaring, foydalanuvchi nomi "foydalanuvchi" va parol "31337". Agar bunday yozuv mavjud bo'lsa, u holda foydalanuvchi ro'yxatdan o'tgan, ammo yo'q bo'lsa, yo'q ... Ammo ma'lum sharoitlarda hamma narsa tuzatilishi mumkin. Bu shuni anglatadiki, dastur uzatilgan ma'lumotlarning tarkibini tekshirmasa yoki uning mavjudligini to'liq tekshirmasa SQL ko'rsatmalar. Ushbu misolda kirish va parolning ikkita maydoni tekshirilgan, ammo agar siz parol sifatida "31337 ′ AND email\u003d'user@server.com" (qo'shtirnoqsiz) ko'rsatsangiz, so'rov biroz boshqacha bo'ladi:
TANLASH * QAYERDAN foydalanuvchi, qayerda login \u003d "foydalanuvchi" VA parol \u003d "31337" VA email \u003d "user@server.com"
Va agar elektron pochta maydoni mavjud bo'lsa, ushbu shart ham tekshiriladi. Agar Boolean algebra asoslarini eslasak, "va" operatsiyasidan tashqari "yoki" ham mavjudligi yodda qoladi va ulardan foydalanish SQL tomonidan qo'llab-quvvatlanganligi sababli, siz ta'riflangan usulda har doim haqiqiy qiymatni qaytaradigan shartni qo'shish uchun. Buni amalga oshirish uchun login sifatida "foydalanuvchi" yoki "1 \u003d 1 -" belgisini kiritishingiz kerak, bu holda so'rov quyidagi shaklni oladi:
TANLANG * QAYERDAN foydalanuvchi, qayerda login \u003d "foydalanuvchi" YOKI 1 \u003d 1-- "VA
parol \u003d "31337"
Avval bilishingiz kerak: "-" so'rov oxirini anglatadi va "-" dan keyin hamma narsa.
qayta ishlanmaydi! Go'yo biz iltimos qilganimiz kabi:
TANLANG * QAYERDAN foydalanuvchilar, qayerda login \u003d "foydalanuvchi" YOKI 1 \u003d 1
Ko'rib turganingizdek, biz "1 \u003d 1" shartini qo'shdik, shuning uchun sinov sharti "agar foydalanuvchi" yoki 1 \u003d 1 "bo'lsa, lekin barchasi 1 har doim 1 ga teng bo'ladi (faqat Dani Shepovalovning arifmetikasi istisno bo'lishi mumkin :)). Bizning shubhalarimizni sinash uchun
biz "http://www.server.com?login\u003duser yoki 1 \u003d 1 - & parol \u003d 31337" manzil satrida bolg'ani bosamiz. Bu biz qaysi loginni belgilab berganimiz muhim emasligiga olib keladi, ammoayniqsa parol! Va biz matritsadamiz ... oh, tizimda va kerakli narsalarni xavfsiz yuklab olishimiz mumkin.
Ammo bularning barchasi nazariyada. Amalda, biz so'rov qanday shakllantirilganligini, qanday ma'lumotlar uzatilishini va qanday ketma-ketlikni bilmaymiz. Shuning uchun barcha maydonlar uchun "foydalanuvchi" yoki "1 \u003d 1 -" belgisini kiritishingiz kerak. Yashirin maydonlar uchun topshirish formasini tekshirishingiz kerak. HTML tilida ular " ". Agar mavjud bo'lsa, sahifani saqlang va ushbu maydonlarning qiymatlarini o'zgartiring. Ulardagi qiymatlar ko'pincha SQL ko'rsatmalarini tekshirishni unutishadi. Ammo har bir narsa ishlashi uchun u "ACTION" parametri uchun ("FORM" yorlig'i) shaklida bo'lishi kerak, ushbu so'rovni bajaradigan skriptning to'liq yo'lini belgilang.
Ammo so'rov qanday hosil bo'lishi har doim ham ma'lum emas,
O'tgan misol quyidagicha shakllantirilishi mumkin:
TANLASH * QAYERDAN foydalanuvchilar (login \u003d "foydalanuvchi" VA parol \u003d "31337")
TANLASH * QAYERDAN foydalanuvchi, qayerga login \u003d "foydalanuvchi" VA parol \u003d "31337"
TANLASH * QAYERDAN foydalanuvchilar, qayerda login \u003d foydalanuvchi va parol \u003d 31337
Bunday holda siz quyidagi variantlarni sinab ko'rishingiz mumkin:
'OR 1 \u003d 1–
"YOKI 1 \u003d 1 -
YOKI 1 \u003d 1–
'Yo' a '\u003d' a
"YOKI" a "\u003d" a
') YOKI (' a '\u003d' a
YOKI '1' \u003d '1 ′
Hammasi skriptning maqsadiga va dasturchiga bog'liq. Har bir kishi hamma narsani o'ziga xos tarzda bajarishga moyil bo'lgani uchun, dasturchi oson variantni tanlamasligi mumkin. Shuning uchun darhol bo'lmasligi kerak
rad etilsa, voz keching. Zarur,iloji boricha ko'proq variantlarni sinab ko'ring ...

Download 410,37 Kb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   14




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish