MO'YDINJONOV HABIBULLO
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH
VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
QARSHI FILIALI
KOMPYUTER INJINIRINGI FAKULTETI
ATS_11-21 GURUH TALABASINING Wep dasturlash
FANIDAN
Mustaqil ishi_5
Topshirdi: Mo'ydinjonov.H
Qabul qildi: BEGULOV O
Reja:
1. PHPda veb-sayt ishlab chiqishda axborot xavfsizligi
2. Ma’lumotlar bazasi. Ma’lumotlar bazasini boshqarish tizimi
3. Ma’lumotlar bazasiga SQL so’rovlar tili
4. MVC texnologiyalarining ishlash mexanizmi
5. PHP da rasm generatsiya qilish
PHPda veb-sayt ishlab chiqishda axborot xavfsizligi
Veb-saytlarni xavfsiz yaratish va muhofaza qilish maqsadida, PHP keng tarqalgan bir texnologiya bo'lib, bu texnologiya orqali axborot xavfsizligini ta'minlash mumkin. PHPda veb-sayt ishlab chiqishda quyidagi muhim masalalar bilan bog'liq ma'lumotlarni ko'rib chiqamiz:
SQL-Injection va XSS hamkorligini to'xtatish: PHPda veb-sayt yaratishda xavfsizlik, malumotlar bazasiga (masalan, MySQL) ma'lumotlar kiritish jarayonida SQL-injectionni to'xtatish talab etiladi. Bu, foydalanuvchilar tomonidan kiritilgan malumotlarni filtratsiya qilish orqali amalga oshirilishi mumkin. XSS (Cross-Site Scripting) hamkorligi esa, foydalanuvchilar tomonidan kiritilgan skriptlarni web-sahifalarga kiritish jarayonida amalga oshirilishi mumkin. Bu xavfsizlik muammolari PHPda muammo emas, ammo PHPning xususiyatlari va to'g'ridan-to'g'ri tarzda kod yozish orqali ushbu muammolar to'xtatilishi mumkin.
Sesiyalar va autentifikatsiya: PHPda foydalanuvchilar sesiyalar orqali autentifikatsiya qilinishi mumkin. Bu, foydalanuvchilarning tizimda ro'yxatdan o'tish, tizimga kirish va tizimdan chiqish amalga oshirishlarini boshqarishda muhim bo'lib, xavfsizlikni ta'minlash uchun qo'llaniladi. Sesiyalar to'g'ridan-to'g'ri tarzda boshqarilishi va foydalanuvchilarning identifikatorlari haqida maxfiy ma'lumotlarni saqlash PHPda muhimdir.
Parolni shifrlash: Foydalanuvchilar parollarini shifrlash juda muhimdir. PHPda foydalanuvchilar parollarini saqlash jarayonida shifrlash funksiyalari mavjud. Masalan, password_hash() funksiyasi parollarni shifrlab, password_verify() funksiyasi esa kiritilgan parolning to'g'ri bo'lib bo'lmaganligini tekshirish uchun ishlatiladi.
Dosyalarni yuklash va tekshirish: PHP yordamida foydalanuvchilar tomonidan yuklangan fayllarning xavfsizligi ta'minlanishi kerak. Fayllar kiritilganda, PHPning xususiyatlari va kengaytmasi tekshirilishi kerak, bu orqali ehtiyotkorlikni ta'minlash mumkin. Fayllar saqlanayotgan direktoriyalar ham masofaviy.
Ma’lumotlar bazasi. Ma’lumotlar bazasini boshqarish tizimi
Ma'lumotlar bazasi (MDB) boshqarish tizimi, ma'lumotlarni saqlash, o'qish, yozish va boshqa operatsiyalarni amalga oshirish uchun ishlatiluvchi dasturiy ta'mindir. Ma'lumotlar bazasini boshqarish tizimi, ma'lumotlar bazasida saqlangan ma'lumotlarga qulaylik bilan kirish, o'zgartirish va boshqa operatsiyalarini bajarishga imkon beradi. O'zbek tilida ma'lumotlar bazasini boshqarish tizimini ko'rib chiqish uchun quyidagi muhim asosiy qismlarni ko'ramiz:
Ma'lumotlar bazasi turi: Ma'lumotlar bazasi turi ma'lumotlar bazasining qanday tashkil topganligiga bog'liqdir. Masalan, Relational Ma'lumotlar Bazasi (RDBMS) turi, ma'lumotlarni jadvalli maqsadida saqlaydi, shuningdek, NoSQL ma'lumotlar bazasi turi, tarkibiy ma'lumotlarni documentlar, graphlar yoki boshqa ko'rinishlarda saqlaydi.
Tashqi bog'lanishlar: Ma'lumotlar bazasini boshqarish tizimi, tashqi dasturlar va veb-saytlar bilan bog'lanishni ta'minlash uchun imkoniyat berishi kerak. Bu, PHP yoki boshqa server tomonidan dastur orqali ma'lumotlarni o'qish, yozish, o'zgartirish va o'chirish uchun protokollar (masalan, SQL, ODBC) orqali amalga oshiriladi.
Tashqi bog'lanish xavfsizligi: Ma'lumotlar bazasini boshqarish tizimi, ma'lumotlarni tashqi bog'lanishlar orqali himoyalash uchun xavfsizlikni ta'minlash imkoniyatiga ega bo'lishi kerak. Bu, ma'lumotlar bazasiga kirish uchun autentifikatsiya, SSL/TLS protokolining qo'llanilishi, foydalanuvchilarning huquqlarini boshqarish va ma'lumotlarning muximini ta'minlashni o'z ichiga oladi.
Ma'lumotlar bazasini tashqi hisobga olish: Ma'lumotlar bazasini boshqarish tizimi ma'lumotlar bazasining to'liq tarzda ishlashi uchun kerakli to'lov, foydalanuvchi hisob-kitoblari va muammo yechishning boshqa xizmatlari bilan integratsiyada bo'lishi kerak.
Backup va qayta tiklash: Ma'lumotlar bazasini boshqarish tizimi ma'lumotlar bazasining qayta tiklash va backup jarayonlarini qo'llaniladi.
Ma’lumotlar bazasiga SQL so’rovlar tili
SQL (Structured Query Language) - ma'lumotlar bazasi tizimida ishlatiladigan standart so'rov tili hisoblanadi. SQL, ma'lumotlarni o'qish, yozish, o'zgartirish va o'chirishga imkon beradi. SQL so'rovlari, ma'lumotlar bazasi boshqarish tizimiga yuboriladi va kerakli ma'lumotlarni topish va boshqarish uchun ishlatiladi.
SQL, ma'lumotlarni tahlil qilish, qidiruv, yig'ish va statistik analizlarni amalga oshirish uchun kerakli bo'lgan barcha ma'lumotlar bazasi tizimi jarayonlarini bajarishga imkon beradi. SQL so'rovlari turli ma'lumotlar bazasi turlari uchun moslik qilishi mumkin. Masalan, Relational Ma'lumotlar Bazasi (RDBMS) uchun SQL, jadvalli ma'lumotlar bilan ishlashga yordam beradi.
SQL tili bo'lmagan ma'lumotlar bazasi turlari ham mavjud, masalan, NoSQL ma'lumotlar bazalari. NoSQL ma'lumotlar bazalari uchun ham, SQL bo'lmagan so'rovlari ishlatiladi. Bunday so'rovlarga, ma'lumotlarni documentlar, graphlar yoki boshqa ko'rinishlarda saqlash uchun moslik qilingan xususiy so'rov tillari, masalan, MongoDB uchun BSON (Binary JSON) so'rovlari yoki Neo4j uchun Cypher so'rovlari kabi, ishlatiladi.
SQL tilining quyidagi asosiy komandalari mavjud:
1) SELECT: Kerakli ma'lumotlarni topish uchun ishlatiladi.
2) INSERT: Yangi ma'lumotni qo'shish uchun ishlatiladi.
3) UPDATE: Ma'lumotlarni o'zgartirish uchun ishlatiladi.
4) DELETE: Ma'lumotlarni o'chirish uchun ishlatiladi.
5) CREATE: Yangi jadval, ma'lumotlar bazasi, indeks va boshqa ob'ektlarni yaratish uchun ishlatiladi.
6) ALTER: Jadval, ma'lumotlar bazasi yoki boshqa ob'ektlarni o'zgartirish uchun ishlatiladi.
7) DROP: Jadval, ma'lumotlar bazasi yoki boshqa ob'ektlarni o'chirish uchun ishlatiladi.
SQL tilining boshqa ko'plab muhim komandalari mavjud, shuningdek, WHERE, JOIN, GROUP BY, ORDER BY va boshqalar. SQL tilini o'rganish, ma'lumotlar bazasi tizimlarini tushunish va ulardan foydalanish uchun kerakli bo'lgan bir qator keyingi amaliyotlar uchun.
MVC texnologiyalarining ishlash mexanizmi
MVC (Model-View-Controller) texnologiyasi, dasturlash sohasida foydalaniladigan arxitektura modelini ifodalaydi. Bu arxitektura texnologiyasi, dasturlash kodini loyihalarni bo'limlarga ajratish va kelgusida kengayishi, boshqarishini osonlashtirish va yangi funktsionalni qo'shishni osonlashtirish maqsadida ishlatiladi.
MVC texnologiyasining ishlash mexanizmi quyidagilardan iborat bo'lib, har bir qismning o'z belgilangan vazifalari mavjud:
Model: Model, ma'lumotlarni saqlaydi va ishlaydi. Bu qism, ma'lumotlarni o'z ichiga oladi, ularga ma'lumotlarni saqlash, o'qish, yozish, o'zgartirish va o'chirish imkoniyatini beradi. Model, ma'lumotlar bazasidan ma'lumotlarni olishni ham o'z ichiga oladi.
View: View, foydalanuvchiga ma'lumotlarni ko'rsatishga doir hisoblanadi. Bu qism, foydalanuvchiga ma'lumotlarni o'zgartirish imkonini beradigan interfeysni taqdim etadi. View, ma'lumotlarni formatlash va foydalanuvchiga ko'rsatishdan iborat bo'ladi.
Controller: Controller, ma'lumotlar bazasidan ma'lumotlarni olish yoki o'zgartirish, ma'lumotlarni modelga o'zgartirish va boshqarishning boshqa qismlarini birlashtiradi. Bu qism, foydalanuvchidan kelgan so'rovni qabul qilib, u asosida ma'lumotlarni boshqaradi. So'rovni qabul qilish, ma'lumotlarni tahlil qilish va kerakli amalga oshirishni boshqarish Controllerning vazifalariga kiradi.
MVC texnologiyasi, kodni loyihalarga bo'lib ajratishga imkon beradi. Model, View va Controller loyihalari alohida bo'lib, o'zining belgilangan vazifalarini bajaradi. Model va View alohida ishlayadi va bir-biriga tegishli bo'lmaydi. Model va View orasidagi aloqani Controller boshqaradi. Foydalanuvchidan kelgan so'rovlarni Controller qabul qilib, Model orqali ma'lumotlarni o'zgartiradi va Viewga o'zgartirilgan ma'lumotlarni uzatadi. View esa o'zgarishlarni foydalanuvchiga namoyish etadi.