Hodisa – Nafaqat musulmonlar uchun, balki, g'ayrimuslim bo'lsada qalbidagi insoniylikni yo'qotmagan odamlar uchun ham rejalangan ijtimoiy tarmoq edi.
Bu loyihaga o'z vaqtimni va hamkasblarim vaqtini sarflaganimga qaramasdan uni to'xtatdim. Umma Life platformasini ko'rgach "Hodisa"-ni davom ettiraverishimga faqatgina hudbinligim sabab bo'lishi mumkin edi.
Og'riqli nuqtalarimiz juda ko'p bo'laturib bor narsani qaytadan "ixtiro" qilishga qo'lim bormadi.
Xa, jamiyatga foydasi tegadigan imkoniyatdan foydalanolmadim, lekin hammasi hali oldinda. Umid qilaman.
Bizning g'oyalarimiz va niyyatlarimiz bir bo'lgan nuqtalarda ("ko'rpani" o'zimizga tortmasdan) birlashishimiz shart! Agar-ki yaqinda bo'lib o'tgan tarix qaytalanishini xohlamasak...
@uzdevid | UmmaLife
Bu loyihaga o'z vaqtimni va hamkasblarim vaqtini sarflaganimga qaramasdan uni to'xtatdim. Umma Life platformasini ko'rgach "Hodisa"-ni davom ettiraverishimga faqatgina hudbinligim sabab bo'lishi mumkin edi.
Og'riqli nuqtalarimiz juda ko'p bo'laturib bor narsani qaytadan "ixtiro" qilishga qo'lim bormadi.
Xa, jamiyatga foydasi tegadigan imkoniyatdan foydalanolmadim, lekin hammasi hali oldinda. Umid qilaman.
Bizning g'oyalarimiz va niyyatlarimiz bir bo'lgan nuqtalarda ("ko'rpani" o'zimizga tortmasdan) birlashishimiz shart! Agar-ki yaqinda bo'lib o'tgan tarix qaytalanishini xohlamasak...
@uzdevid | UmmaLife
👍16❤5
Toshkent shahrida jamoat transportining doimiy yo'lovchilari uchun!
@YulovchiRobot - tanlagan bekatingizga Sizga kerakli avtobus yaqinlashib qolgani haqida oldindan habar beradi.
Bekatda ortiqcha vaqt o'tkazmaysiz, avtobusingiz bekatga yaqinlashganda uyingizdan yoki ish joyingizdan chiqishingiz mumkin.
@YulovchiRobot
@YulovchiRobot - tanlagan bekatingizga Sizga kerakli avtobus yaqinlashib qolgani haqida oldindan habar beradi.
Bekatda ortiqcha vaqt o'tkazmaysiz, avtobusingiz bekatga yaqinlashganda uyingizdan yoki ish joyingizdan chiqishingiz mumkin.
@YulovchiRobot
👍4🔥3👏1
Forwarded from UzGeeks Community
This media is not supported in your browser
VIEW IN TELEGRAM
DevOps mutaxassis bilan yaxshi munosabatda bo'lish siri!
O'zingizga saqlab qo'ying, DevOpschilarga, dasturchilarga, pm'larga va mahalladagi boshqalarga yuborib qo'ying.
@UzGeeksCommunity
O'zingizga saqlab qo'ying, DevOpschilarga, dasturchilarga, pm'larga va mahalladagi boshqalarga yuborib qo'ying.
@UzGeeksCommunity
😁4👍2👏1😱1
Forwarded from Utamuratovs
🎬 Dependency Injection o'zi nima?
Dependency Injection mavzusi biroz qiynab qo'yadigan mavzulardan. Ushbu videoda DI o'zi nima va u qanday vazifa bajaradi degan savollarga javob berilgan. Injector va Providers tushunchalariga ham ta'rif berilgan.
Havola: https://www.youtube.com/watch?v=FiQ1QAYVT8E
Dependency Injection mavzusi biroz qiynab qo'yadigan mavzulardan. Ushbu videoda DI o'zi nima va u qanday vazifa bajaradi degan savollarga javob berilgan. Injector va Providers tushunchalariga ham ta'rif berilgan.
Havola: https://www.youtube.com/watch?v=FiQ1QAYVT8E
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
#beta #gPort #golang #php #yii2
Ngrok-dan foydalanganmisiz?
gPort - Local tarmoqdagi sayt yoki API-ni global tarmoq orqali foydalanishga imkoniyat yaratib beradi.
Ishga tushurish uchun:
Dasturni quyidagi havola orqali yuklab olishingiz mumkin
https://github.com/uzdevid/gport
Ngrok-dan foydalanganmisiz?
gPort - Local tarmoqdagi sayt yoki API-ni global tarmoq orqali foydalanishga imkoniyat yaratib beradi.
Ishga tushurish uchun:
gport share -a <local manzil>
Dasturni quyidagi havola orqali yuklab olishingiz mumkin
https://github.com/uzdevid/gport
👍7🔥2🤔1
#release #websocket #php #yii2
WebSocket php uchun emas?
Yii2 framework-i uchun qulay, oson va moslashuvchan websocket kutubxonasini tayyorladik.
Quyidagi havola orqali foydalanish yo'riqnomasi bilan tanishishingiz mumkin
https://github.com/uzdevid/yii2-websocket
WebSocket php uchun emas?
Yii2 framework-i uchun qulay, oson va moslashuvchan websocket kutubxonasini tayyorladik.
Quyidagi havola orqali foydalanish yo'riqnomasi bilan tanishishingiz mumkin
https://github.com/uzdevid/yii2-websocket
👍6🔥1👏1
UzDevid
#beta #gPort #golang #php #yii2 Ngrok-dan foydalanganmisiz? gPort - Local tarmoqdagi sayt yoki API-ni global tarmoq orqali foydalanishga imkoniyat yaratib beradi. Ishga tushurish uchun: gport share -a <local manzil> Dasturni quyidagi havola orqali yuklab…
#release 1.0.1
Console interface yangilandi
Doimiy domendan foydalanish imkoniyati qo'shildi
@uzdevid
Console interface yangilandi
Doimiy domendan foydalanish imkoniyati qo'shildi
gport share -a example.local --domain exm.gport.uz
@uzdevid
👍8🔥4🥰1👏1
#release #gport 1.0.2
Quyidagi kichik o'zgarishlar kiritildi
1. So'rov sarlavhalarini o'tkazish
2. Terminalda so'rovning vaqtini aks ettirish
https://github.com/uzdevid/gport
Quyidagi kichik o'zgarishlar kiritildi
1. So'rov sarlavhalarini o'tkazish
2. Terminalda so'rovning vaqtini aks ettirish
https://github.com/uzdevid/gport
👍8
Forwarded from Bahriddin Mo'minov 💡 Blog
Assalomu alaykum
Kechkirganda bezovta qilayapaman (umuman olganda ovozsiz xabar yuborayapman),
https://www.youtube.com/watch?v=hRQWc_47kgE
Ushbu videoni ulashishni lozim deb bildim.
Oddiy hol bolib qolgan narsalar, ommaviy propaganda haqida.
Ko'rib chiqasiz degan umiddaman.
Rahmat.
#propaganda #oddiy_hol
@bahriddin_blog
Kechkirganda bezovta qilayapaman (umuman olganda ovozsiz xabar yuborayapman),
https://www.youtube.com/watch?v=hRQWc_47kgE
Ushbu videoni ulashishni lozim deb bildim.
Oddiy hol bolib qolgan narsalar, ommaviy propaganda haqida.
Ko'rib chiqasiz degan umiddaman.
Rahmat.
#propaganda #oddiy_hol
@bahriddin_blog
YouTube
Oddiy Hol: PROPAGANDA 2
Assalaamu alaykum birodarlar.
1 soat vaqtingizni o'zingiz va kelajak avlodingiz uchun ajratishingizni iltimos qilib qolaman.
Videodan foyda olgan bo'lsangiz uni ulashib qo'yishingizni va ko'proq odamlarga yetib borishiga hissa qo'shishingizni so'rab qolar…
1 soat vaqtingizni o'zingiz va kelajak avlodingiz uchun ajratishingizni iltimos qilib qolaman.
Videodan foyda olgan bo'lsangiz uni ulashib qo'yishingizni va ko'proq odamlarga yetib borishiga hissa qo'shishingizni so'rab qolar…
👍8🔥1
NFR (Non-Functional Requirements) yoki funksional bo'lmagan talablar dasturiy ta'minot yoki tizimning ishlashiga ta'sir ko'rsatadigan, lekin bevosita funktsional vazifalar bilan bog'liq bo'lmagan talablar sifatida tushuniladi. Ushbu talablar tizimning qanday ishlashi, uning samaradorligi, xavfsizligi, ishlash tezligi kabi jihatlarni o'z ichiga oladi.
NFR-lar quyidagi asosiy turlarga bo'linadi:
Ishlash Tezligi: Tizimning ma'lum bir vaqtda qancha tez ishlashi kerakligi. Masalan, foydalanuvchi so'roviga qattiq tezlikda javob berish.
Ishonchlilik: Tizimning uzluksiz ishlash qobiliyati va xatolarni minimallashtirish. Tizimning doimiy va ishonchli ishlashi, hatto muammolar yuzaga kelganida ham.
Xavfsizlik: Ma'lumotlarning himoyalanganligi va tizimga ruxsatsiz kirishning oldini olish. Bu, foydalanuvchi ma'lumotlarini himoya qilish va tizim xavfsizligini ta'minlashni o'z ichiga oladi.
Kengayuvchanlik: Tizimning o'sishi yoki ko'proq yuklarni qabul qilish qobiliyati. Tizim yangi foydalanuvchilar yoki qo'shimcha funksiyalar bilan ishlashga tayyor bo'lishi kerak.
Saqlanish: Tizimni yangilash, sozlash yoki texnik xizmat ko'rsatishni osonlashtiruvchi talablar. Bu, dasturiy ta'minotning saqlanishi va qo'llab-quvvatlanishini soddalashtiradi.
NFR-lar dasturiy ta'minotni rivojlantirish jarayonida muhim rol o'ynaydi. Ular tizimning umumiy sifatini oshiradi va foydalanuvchilarga yaxshi tajriba taqdim etishga yordam beradi. Dasturchilar va tizim dizaynerlari ushbu talablarni hisobga olishlari kerak, chunki ular dasturiy ta'minotning muvaffaqiyati uchun muhim ahamiyatga ega.
ChatGPT
NFR-lar quyidagi asosiy turlarga bo'linadi:
Ishlash Tezligi: Tizimning ma'lum bir vaqtda qancha tez ishlashi kerakligi. Masalan, foydalanuvchi so'roviga qattiq tezlikda javob berish.
Ishonchlilik: Tizimning uzluksiz ishlash qobiliyati va xatolarni minimallashtirish. Tizimning doimiy va ishonchli ishlashi, hatto muammolar yuzaga kelganida ham.
Xavfsizlik: Ma'lumotlarning himoyalanganligi va tizimga ruxsatsiz kirishning oldini olish. Bu, foydalanuvchi ma'lumotlarini himoya qilish va tizim xavfsizligini ta'minlashni o'z ichiga oladi.
Kengayuvchanlik: Tizimning o'sishi yoki ko'proq yuklarni qabul qilish qobiliyati. Tizim yangi foydalanuvchilar yoki qo'shimcha funksiyalar bilan ishlashga tayyor bo'lishi kerak.
Saqlanish: Tizimni yangilash, sozlash yoki texnik xizmat ko'rsatishni osonlashtiruvchi talablar. Bu, dasturiy ta'minotning saqlanishi va qo'llab-quvvatlanishini soddalashtiradi.
NFR-lar dasturiy ta'minotni rivojlantirish jarayonida muhim rol o'ynaydi. Ular tizimning umumiy sifatini oshiradi va foydalanuvchilarga yaxshi tajriba taqdim etishga yordam beradi. Dasturchilar va tizim dizaynerlari ushbu talablarni hisobga olishlari kerak, chunki ular dasturiy ta'minotning muvaffaqiyati uchun muhim ahamiyatga ega.
ChatGPT
👍4🔥1
Nginx (Engine-X) va Apache HTTP Server — bu ikki mashhur web-server bo‘lib, ular arxitektura, ishlash samaradorligi va so‘rovlarni qayta ishlash usullari jihatidan farq qiladi. Mana ba'zi asosiy farqlar:
Arxitektura:
Nginx: Asinxron va voqealarga asoslangan arxitektura. Ko‘p sonli ulanishlarni kam resurslar bilan qayta ishlaydi.
Apache: Ko‘p vazifali va jarayonlarga asoslangan arxitektura. Har bir ulanish uchun alohida jarayon yaratadi.
Ishlash samaradorligi:
Nginx: Odatda, statik fayllarni va ko‘p sonli bir vaqtdagi ulanishlarni qayta ishlashda samaraliroq.
Apache: Dinamik kontentlarni qayta ishlashda yaxshi, ammo statik fayllar va ko‘p so‘rovlarni qayta ishlashda kamroq samarali bo‘lishi mumkin.
Resurslardan foydalanish:
Nginx: Kamroq operativ xotira talab qiladi va ko‘p sonli bir vaqtning o‘zida ulanishlarni samarali tarzda xizmat ko‘rsatishi mumkin.
Apache: Har bir ulanish uchun jarayon yaratish natijasida ko‘proq operativ xotira iste'mol qilishi mumkin, ayniqsa ko‘p so‘rovlar bo‘lsa.
So‘rovlarni qayta ishlash modellari:
Nginx: Bir ishchi jarayon bir necha ulanishni boshqaradi. Qayta ishlash asinxron va voqealarga asoslangan.
Apache: Har bir so‘rov alohida jarayon yoki oqim tomonidan qayta ishlanadi.
Konfiguratsiya:
Nginx: Konfiguratsiya fayllari aniqroq va o‘qilishi osonroq. Statik konfiguratsiyaga ko‘proq e'tibor qaratiladi.
Apache: Konfiguratsiya sintaksisi ko‘proq moslashuvchan va batafsil, bu esa murakkab sozlamalar uchun foydali bo‘lishi mumkin.
Modullar:
Nginx: Modulli arxitektura, lekin modul konfiguratsiyasidagi o‘zgarishlarni amalga oshirish uchun qayta ishga tushirishni talab qiladi.
Apache: Ko‘plab modullarni qo‘llab-quvvatlaydi va modul konfiguratsiyasidagi ko‘pgina o‘zgarishlarni qayta ishga tushirmasdan amalga oshirish mumkin.
Kengaytirilish:
Nginx: Ko‘pincha proksi-server yoki orqa proksi sifatida ishlatiladi va boshqa web-serverlar bilan oson integratsiya qilinadi.
Apache: Dinamik kontentlarni qayta ishlashda keng qo‘llaniladi, ko‘plab dasturlash tillari va ramkalarni qo‘llab-quvvatlaydi.
Manba: @php_interview_lib
Arxitektura:
Nginx: Asinxron va voqealarga asoslangan arxitektura. Ko‘p sonli ulanishlarni kam resurslar bilan qayta ishlaydi.
Apache: Ko‘p vazifali va jarayonlarga asoslangan arxitektura. Har bir ulanish uchun alohida jarayon yaratadi.
Ishlash samaradorligi:
Nginx: Odatda, statik fayllarni va ko‘p sonli bir vaqtdagi ulanishlarni qayta ishlashda samaraliroq.
Apache: Dinamik kontentlarni qayta ishlashda yaxshi, ammo statik fayllar va ko‘p so‘rovlarni qayta ishlashda kamroq samarali bo‘lishi mumkin.
Resurslardan foydalanish:
Nginx: Kamroq operativ xotira talab qiladi va ko‘p sonli bir vaqtning o‘zida ulanishlarni samarali tarzda xizmat ko‘rsatishi mumkin.
Apache: Har bir ulanish uchun jarayon yaratish natijasida ko‘proq operativ xotira iste'mol qilishi mumkin, ayniqsa ko‘p so‘rovlar bo‘lsa.
So‘rovlarni qayta ishlash modellari:
Nginx: Bir ishchi jarayon bir necha ulanishni boshqaradi. Qayta ishlash asinxron va voqealarga asoslangan.
Apache: Har bir so‘rov alohida jarayon yoki oqim tomonidan qayta ishlanadi.
Konfiguratsiya:
Nginx: Konfiguratsiya fayllari aniqroq va o‘qilishi osonroq. Statik konfiguratsiyaga ko‘proq e'tibor qaratiladi.
Apache: Konfiguratsiya sintaksisi ko‘proq moslashuvchan va batafsil, bu esa murakkab sozlamalar uchun foydali bo‘lishi mumkin.
Modullar:
Nginx: Modulli arxitektura, lekin modul konfiguratsiyasidagi o‘zgarishlarni amalga oshirish uchun qayta ishga tushirishni talab qiladi.
Apache: Ko‘plab modullarni qo‘llab-quvvatlaydi va modul konfiguratsiyasidagi ko‘pgina o‘zgarishlarni qayta ishga tushirmasdan amalga oshirish mumkin.
Kengaytirilish:
Nginx: Ko‘pincha proksi-server yoki orqa proksi sifatida ishlatiladi va boshqa web-serverlar bilan oson integratsiya qilinadi.
Apache: Dinamik kontentlarni qayta ishlashda keng qo‘llaniladi, ko‘plab dasturlash tillari va ramkalarni qo‘llab-quvvatlaydi.
Manba: @php_interview_lib
👍5❤1🔥1
OASP (OWASP) Top 10 – bu veb-ilovalar xavfsizligidagi eng keng tarqalgan va xavfli zaifliklarni ko‘rsatib beruvchi ro‘yxatdir. Ushbu ro‘yxat ishlab chiquvchilar, xavfsizlik mutaxassislari va IT sohasi xodimlari uchun muhim qo‘llanma hisoblanadi. Quyida OASP Top 10 ro‘yxati va ularning qisqacha tavsifi keltirilgan:
1. Broken Access Control (A1)
Buzilgan kirish nazorati foydalanuvchilarning cheklangan resurslarga ruxsatsiz kirishini ta'minlaydi. Masalan, foydalanuvchi administrator huquqlariga ega bo‘lmasa ham, maxsus URL orqali kirib, ma'lumotlarni o‘zgartirishi mumkin.
2. Cryptographic Failures (A2)
Kriptografik xatolar (ilgari "Sensitive Data Exposure" deb atalgan) ma'lumotlarni noto‘g‘ri shifrlash yoki himoya qilish bilan bog‘liq muammolarni o‘z ichiga oladi. Bu zaiflik, ayniqsa, shaxsiy ma'lumotlarning oshkor bo‘lishiga olib keladi.
3. Injection (A3)
Inyeksiya hujumlari (masalan, SQL, NoSQL, OS, va LDAP inyeksiyalari) orqali kiritilgan zararli kod ilova tomonidan bajariladi. Bu zaifliklar hujumchiga kiritilgan buyruqlarni amalga oshirish yoki maxfiy ma'lumotlarni olish imkonini beradi.
4. Insecure Design (A4)
Havfsiz bo'lmagan dizayn dasturiy ta’minot arxitekturasi va tizimni yaratishda xavfsizlik choralari etarli darajada e’tiborga olinmasligini anglatadi. Bu turdagi zaiflik yangi xavf-xatarlarni keltirib chiqarishi mumkin.
5. Security Misconfiguration (A5)
Noto‘g‘ri sozlashlar, xavfsizlik parametrlarining noto‘g‘ri o‘rnatilishi bilan bog‘liq. Dasturlar o‘rnatilganda yoki sozlanganda xavfsizlik sozlamalari noto‘g‘ri yoki standart holatda qoldirilsa, bu hujumlarga yo‘l ochadi.
6. Vulnerable and Outdated Components (A6)
Zaif yoki eskirgan komponentlardan foydalanish xavfsizlikka tahdid soladi. Masalan, ilova yoki tizimda eski versiyadagi kutubxonalar yoki modullar ishlatilsa, ular orqali hujumlar amalga oshirilishi mumkin.
7. Identification and Authentication Failures (A7)
Identifikatsiya va autentifikatsiya muammolari (ilgari "Broken Authentication" deb atalgan) foydalanuvchilarni to‘g‘ri autentifikatsiya qilmaslik yoki noto‘g‘ri identifikatsiya qilish bilan bog‘liq. Bu zaiflik foydalanuvchilarning hisoblarini o‘g‘irlashga olib kelishi mumkin.
8. Software and Data Integrity Failures (A8)
Dasturiy ta’minot va ma'lumotlar yaxlitligi bilan bog‘liq muammolar, ayniqsa, yangilanishlar va kodni qo‘shishda zaifliklar paydo bo‘lishi bilan bog‘liq. Masalan, zaharli yangilanishlar orqali hujumlar amalga oshirilishi mumkin.
9. Security Logging and Monitoring Failures (A9)
Xavfsizlik loglari va monitoringi yetarli darajada bo‘lmasa, hujumlarni aniqlash va ularga javob qaytarish qiyinlashadi. Ushbu zaiflik tizim hujumga uchraganida yoki zarar ko‘rganida, o‘z vaqtida aniqlashga imkon bermaydi.
10. Server-Side Request Forgery (SSRF) (A10)
SSRF hujumlari hujumchilarga ilova orqali noto‘g‘ri so‘rovlar yuborish imkonini beradi. Bu zaiflik ilova ichidagi serverga so‘rov yuborib, maxfiy ma'lumotlarni olish yoki boshqa xizmatlarga kirish imkonini beradi.
ChatGPT
1. Broken Access Control (A1)
Buzilgan kirish nazorati foydalanuvchilarning cheklangan resurslarga ruxsatsiz kirishini ta'minlaydi. Masalan, foydalanuvchi administrator huquqlariga ega bo‘lmasa ham, maxsus URL orqali kirib, ma'lumotlarni o‘zgartirishi mumkin.
2. Cryptographic Failures (A2)
Kriptografik xatolar (ilgari "Sensitive Data Exposure" deb atalgan) ma'lumotlarni noto‘g‘ri shifrlash yoki himoya qilish bilan bog‘liq muammolarni o‘z ichiga oladi. Bu zaiflik, ayniqsa, shaxsiy ma'lumotlarning oshkor bo‘lishiga olib keladi.
3. Injection (A3)
Inyeksiya hujumlari (masalan, SQL, NoSQL, OS, va LDAP inyeksiyalari) orqali kiritilgan zararli kod ilova tomonidan bajariladi. Bu zaifliklar hujumchiga kiritilgan buyruqlarni amalga oshirish yoki maxfiy ma'lumotlarni olish imkonini beradi.
4. Insecure Design (A4)
Havfsiz bo'lmagan dizayn dasturiy ta’minot arxitekturasi va tizimni yaratishda xavfsizlik choralari etarli darajada e’tiborga olinmasligini anglatadi. Bu turdagi zaiflik yangi xavf-xatarlarni keltirib chiqarishi mumkin.
5. Security Misconfiguration (A5)
Noto‘g‘ri sozlashlar, xavfsizlik parametrlarining noto‘g‘ri o‘rnatilishi bilan bog‘liq. Dasturlar o‘rnatilganda yoki sozlanganda xavfsizlik sozlamalari noto‘g‘ri yoki standart holatda qoldirilsa, bu hujumlarga yo‘l ochadi.
6. Vulnerable and Outdated Components (A6)
Zaif yoki eskirgan komponentlardan foydalanish xavfsizlikka tahdid soladi. Masalan, ilova yoki tizimda eski versiyadagi kutubxonalar yoki modullar ishlatilsa, ular orqali hujumlar amalga oshirilishi mumkin.
7. Identification and Authentication Failures (A7)
Identifikatsiya va autentifikatsiya muammolari (ilgari "Broken Authentication" deb atalgan) foydalanuvchilarni to‘g‘ri autentifikatsiya qilmaslik yoki noto‘g‘ri identifikatsiya qilish bilan bog‘liq. Bu zaiflik foydalanuvchilarning hisoblarini o‘g‘irlashga olib kelishi mumkin.
8. Software and Data Integrity Failures (A8)
Dasturiy ta’minot va ma'lumotlar yaxlitligi bilan bog‘liq muammolar, ayniqsa, yangilanishlar va kodni qo‘shishda zaifliklar paydo bo‘lishi bilan bog‘liq. Masalan, zaharli yangilanishlar orqali hujumlar amalga oshirilishi mumkin.
9. Security Logging and Monitoring Failures (A9)
Xavfsizlik loglari va monitoringi yetarli darajada bo‘lmasa, hujumlarni aniqlash va ularga javob qaytarish qiyinlashadi. Ushbu zaiflik tizim hujumga uchraganida yoki zarar ko‘rganida, o‘z vaqtida aniqlashga imkon bermaydi.
10. Server-Side Request Forgery (SSRF) (A10)
SSRF hujumlari hujumchilarga ilova orqali noto‘g‘ri so‘rovlar yuborish imkonini beradi. Bu zaiflik ilova ichidagi serverga so‘rov yuborib, maxfiy ma'lumotlarni olish yoki boshqa xizmatlarga kirish imkonini beradi.
ChatGPT
👍4
Yechim. Broken Access Control (Buzilgan Kirish Nazorati)
1. Kirish nazorati siyosatlarini qat'iy amalga oshirish: Har bir resurs uchun kimga kirishga ruxsat berilganligini aniq belgilang.
2. Rolga asoslangan kirish nazoratini (RBAC) qo‘llang: Foydalanuvchilarga faqat kerakli huquqlarni berish orqali ularning kirish imkoniyatlarini cheklang.
3. So‘rovlar va URL manzillarning haqiqiyligini tekshiring: Foydalanuvchilarni autentifikatsiya qilganingizdan keyin, ularning resurslarga haqiqiy kirish huquqiga ega ekanligiga ishonch hosil qiling.
4. Kirish nazorati uchun avtomatlashtirilgan testlarni amalga oshiring.
ChatGPT
1. Kirish nazorati siyosatlarini qat'iy amalga oshirish: Har bir resurs uchun kimga kirishga ruxsat berilganligini aniq belgilang.
2. Rolga asoslangan kirish nazoratini (RBAC) qo‘llang: Foydalanuvchilarga faqat kerakli huquqlarni berish orqali ularning kirish imkoniyatlarini cheklang.
3. So‘rovlar va URL manzillarning haqiqiyligini tekshiring: Foydalanuvchilarni autentifikatsiya qilganingizdan keyin, ularning resurslarga haqiqiy kirish huquqiga ega ekanligiga ishonch hosil qiling.
4. Kirish nazorati uchun avtomatlashtirilgan testlarni amalga oshiring.
ChatGPT
👍7
Transaksiya ma'lumotlar bazasi kontekstida — ma'lumotlar bilan amalga oshiriladigan operatsiyalar ketma-ketligi bo'lib, ular bir butunlik sifatida qaraladi. Asosiy maqsad — operatsiyalar guruhini ishonchli bajarishni ta'minlash, shu tariqa ma'lumotlar bazasi xato yoki uzilishlar holatida ham muvofiq holatda qolishini ta'minlash. Transaksiyalar ACID printsiplariga bo'ysunadi, ular quyidagilarni ta'minlaydi:
- Atomarlik (Atomicity): To'liq bajariladi yoki umuman bajarilmaydi. Agar transaksiyaning biror qismi yakunlanmasa, barcha harakatlar qaytariladi (bekor qilinadi) va tizim transaksiya boshlanishidan oldingi holatga qaytadi.
- Muvofiqllik (Consistency): Ma'lumotlar bazasini bir muvofiq holatdan boshqa bir muvofiq holatga o'tkazadi. Bu ma'lumotlarning butunlik qoidalariga rioya etilishini anglatadi.
- Izolyatsiya (Isolation): Boshqa transaksiyalarning oraliq holatlarini ko'rmaydi. Bu "iflos o'qish" yoki "takrorlanmas o'qish" kabi muammolarning oldini oladi.
- Mustahkamlik (Durability): Transaksiya yakunlangandan so'ng (commit), uning natijalari tizimdagi keyingi uzilishlardan qat'i nazar, ma'lumotlar bazasida saqlanadi.
Ular turli vazifalarni bajarish uchun ishlatiladi, masalan, bank hisoblari o'rtasida mablag'larni o'tkazish, tovarlarni boshqarish tizimlarida inventarizatsiyani yangilash, foydalanuvchilarni boshqarish tizimlarida o'zgarishlar kiritish va ma'lumotlarning butunligini kafolatlashni talab qiladigan boshqa ko'plab operatsiyalar.
Misol:
Ushbu misolda bitta transaksiyaga asoslanib, ikki bank hisobi o'rtasida mablag'lar o'tkaziladi. Agar hisoblarning birida balansni yangilash biron sababga ko'ra amalga oshirilmasa (masalan, tizimdagi uzilish sababli), transaksiya bekor qilinadi va ma'lumotlar bazasi dastlabki holatga qaytadi, shu tariqa ma'lumotlarning butunligi ta'minlanadi.
Yakun:
Transaksiya — bu ma'lumotlar bazasi bilan bir nechta operatsiyalarni bir butunlikka jamlash mexanizmi bo'lib, bu ACID kafolatlarini ta'minlash uchun muhimdir, bu esa ma'lumotlarning butunligi va ishonchliligini saqlash uchun zarur.
@uzdevid
- Atomarlik (Atomicity): To'liq bajariladi yoki umuman bajarilmaydi. Agar transaksiyaning biror qismi yakunlanmasa, barcha harakatlar qaytariladi (bekor qilinadi) va tizim transaksiya boshlanishidan oldingi holatga qaytadi.
- Muvofiqllik (Consistency): Ma'lumotlar bazasini bir muvofiq holatdan boshqa bir muvofiq holatga o'tkazadi. Bu ma'lumotlarning butunlik qoidalariga rioya etilishini anglatadi.
- Izolyatsiya (Isolation): Boshqa transaksiyalarning oraliq holatlarini ko'rmaydi. Bu "iflos o'qish" yoki "takrorlanmas o'qish" kabi muammolarning oldini oladi.
- Mustahkamlik (Durability): Transaksiya yakunlangandan so'ng (commit), uning natijalari tizimdagi keyingi uzilishlardan qat'i nazar, ma'lumotlar bazasida saqlanadi.
Ular turli vazifalarni bajarish uchun ishlatiladi, masalan, bank hisoblari o'rtasida mablag'larni o'tkazish, tovarlarni boshqarish tizimlarida inventarizatsiyani yangilash, foydalanuvchilarni boshqarish tizimlarida o'zgarishlar kiritish va ma'lumotlarning butunligini kafolatlashni talab qiladigan boshqa ko'plab operatsiyalar.
Misol:
BEGIN TRANSACTION;
UPDATE BankAccounts SET Balance = Balance - 100 WHERE AccountNumber = '123456';
UPDATE BankAccounts SET Balance = Balance + 100 WHERE AccountNumber = '654321';
COMMIT;
Ushbu misolda bitta transaksiyaga asoslanib, ikki bank hisobi o'rtasida mablag'lar o'tkaziladi. Agar hisoblarning birida balansni yangilash biron sababga ko'ra amalga oshirilmasa (masalan, tizimdagi uzilish sababli), transaksiya bekor qilinadi va ma'lumotlar bazasi dastlabki holatga qaytadi, shu tariqa ma'lumotlarning butunligi ta'minlanadi.
Yakun:
Transaksiya — bu ma'lumotlar bazasi bilan bir nechta operatsiyalarni bir butunlikka jamlash mexanizmi bo'lib, bu ACID kafolatlarini ta'minlash uchun muhimdir, bu esa ma'lumotlarning butunligi va ishonchliligini saqlash uchun zarur.
@uzdevid
👍4🔥2
Bu maqola PHP-da zaif solishtirish (==) dan foydalanish bilan bog'liq bo'lishi mumkin bo'lgan zaifliklarga bag'ishlangan. Qattiq solishtirishdan (===) farqli o'laroq, zaif solishtirish ma'lumotlar turlarini hisobga olmaydi va kutilmagan natijalarga olib kelishi mumkin, bu kodni hujumlarga nisbatan zaif qiladi.
PHP Loose Comparison (PHP-dagi zaif solishtirish)
Zaif solishtirish ikkita qiymat == operatori bilan taqqoslanganda sodir bo'ladi, bu ma'lumotlar turlarini tekshirmaydi. PHP taqqoslashdan oldin taqqoslanadigan qiymatlarni umumiy turga keltirishga harakat qiladi, bu esa kutilmagan natijalarga olib kelishi mumkin. Masalan, 'string' qatori true bilan taqqoslanganda true ga teng deb hisoblanadi.
Xavfsiz bo'lmagan avtorizatsiya tizimi:
Login va parolni tekshirish misolida, xaker true qiymatlarini o'zgartirishi mumkin, bu noto'g'ri ma'lumotlar bilan ham muvaffaqiyatli avtorizatsiyaga olib keladi.
Switch yordamida xavfsiz bo'lmagan avtorizatsiya:
Bu misolda xaker $_POST['user_role'] qiymatini true sifatida qo'llash orqali administrator huquqlariga ega bo'lishi mumkin, chunki switch-case ham zaif solishtirishdan foydalanadi.
Zaifliklarni kamaytirish
Bunday muammolardan qochish uchun, qiymat va ma'lumotlar turini tekshiradigan qattiq solishtirish (===) dan foydalanish tavsiya etiladi. Shuningdek, PHP 8.0 dan boshlab, switch kabi ishlaydigan, ammo qattiq solishtirishdan foydalanadigan match tuzilmasidan foydalanish mumkin, bu kodni yanada xavfsiz qiladi.
@uzdevid
PHP Loose Comparison (PHP-dagi zaif solishtirish)
Zaif solishtirish ikkita qiymat == operatori bilan taqqoslanganda sodir bo'ladi, bu ma'lumotlar turlarini tekshirmaydi. PHP taqqoslashdan oldin taqqoslanadigan qiymatlarni umumiy turga keltirishga harakat qiladi, bu esa kutilmagan natijalarga olib kelishi mumkin. Masalan, 'string' qatori true bilan taqqoslanganda true ga teng deb hisoblanadi.
Xavfsiz bo'lmagan avtorizatsiya tizimi:
Login va parolni tekshirish misolida, xaker true qiymatlarini o'zgartirishi mumkin, bu noto'g'ri ma'lumotlar bilan ham muvaffaqiyatli avtorizatsiyaga olib keladi.
Switch yordamida xavfsiz bo'lmagan avtorizatsiya:
Bu misolda xaker $_POST['user_role'] qiymatini true sifatida qo'llash orqali administrator huquqlariga ega bo'lishi mumkin, chunki switch-case ham zaif solishtirishdan foydalanadi.
Zaifliklarni kamaytirish
Bunday muammolardan qochish uchun, qiymat va ma'lumotlar turini tekshiradigan qattiq solishtirish (===) dan foydalanish tavsiya etiladi. Shuningdek, PHP 8.0 dan boshlab, switch kabi ishlaydigan, ammo qattiq solishtirishdan foydalanadigan match tuzilmasidan foydalanish mumkin, bu kodni yanada xavfsiz qiladi.
@uzdevid
👍5🔥2❤1👏1
SQL in'ektsiya – bu hujumchilarning veb-dasturdagi xavfsizlik zaifliklaridan foydalanib, ma'lumotlar bazasiga zararli SQL so'rovlarini yuborishi va natijada ma'lumotlarga ruxsatsiz kirishi yoki ularni o'zgartirishi mumkin bo'lgan xavfli hujum turi. Bu zaiflik odatda foydalanuvchi kiritgan ma'lumotlar to'g'ridan-to'g'ri SQL so'rovlariga qo'shilganda yuzaga keladi.
### SQL In'ektsiyaning Misoli
Quyidagi kod PHP tilida yozilgan oddiy login shakli:
Ushbu kodning zaifligi shundaki, foydalanuvchi tomonidan kiritilgan
### SQL In'ektsiya Hujumi
Tasavvur qiling, hujumchi quyidagi foydalanuvchi nomi va parolni kiritadi:
- Username:
- Password:
Natijada SQL so'rovi quyidagicha ko'rinishga ega bo'ladi:
`--` SQL so'rovini izohga (kommentariyaga) aylantiradi, natijada
### Zaiflikdan Qanday Qochish Mumkin
SQL in'ektsiyadan himoyalanish uchun quyidagi yondashuvlar qo'llanilishi kerak:
1. Tayyorlangan so'rovlar (Prepared Statements) va parametrlarni bog'lash: Bu usulda foydalanuvchi kiritgan ma'lumotlar SQL so'roviga to'g'ridan-to'g'ri qo'shilmaydi, balki parametr sifatida yuboriladi.
Misol (PHP va MySQLi):
2. Ma'lumotlarni sanitarizatsiya qilish va validatsiya qilish: Foydalanuvchi kiritgan ma'lumotlarni qabul qilishdan oldin, ularni to'g'ri shaklda ekanligini tekshirish lozim.
3. PDO bilan foydalanish: PDO (PHP Data Objects) bilan tayyorlangan so'rovlarni qo'llash xavfsizlikni oshiradi.
Misol:
4. Kiruvchi ma'lumotlarni cheklash: Foydalanuvchi kiritishi mumkin bo'lgan ma'lumotlarni cheklash va kerak bo'lsa, ma'lumotlarni maxsus formatga keltirish (masalan, raqamlar, elektron pochta manzillari va boshqalar).
Bu yondashuvlar SQL in'ektsiyadan himoyalanishga yordam beradi va veb-dastur xavfsizligini oshiradi.
### SQL In'ektsiyaning Misoli
Quyidagi kod PHP tilida yozilgan oddiy login shakli:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($connection, $query);
Ushbu kodning zaifligi shundaki, foydalanuvchi tomonidan kiritilgan
$username va $password qiymatlari to'g'ridan-to'g'ri SQL so'roviga qo'shiladi. Bu esa SQL in'ektsiyasiga olib kelishi mumkin.### SQL In'ektsiya Hujumi
Tasavvur qiling, hujumchi quyidagi foydalanuvchi nomi va parolni kiritadi:
- Username:
admin' --- Password:
anythingNatijada SQL so'rovi quyidagicha ko'rinishga ega bo'ladi:
SELECT * FROM users WHERE username = 'admin' -- ' AND password = 'anything'
`--` SQL so'rovini izohga (kommentariyaga) aylantiradi, natijada
password qismi e'tibordan chetda qoladi. Bu so'rov barcha "admin" foydalanuvchilarini qaytaradi, va agar mavjud bo'lsa, hujumchi tizimga parolsiz kirishi mumkin.### Zaiflikdan Qanday Qochish Mumkin
SQL in'ektsiyadan himoyalanish uchun quyidagi yondashuvlar qo'llanilishi kerak:
1. Tayyorlangan so'rovlar (Prepared Statements) va parametrlarni bog'lash: Bu usulda foydalanuvchi kiritgan ma'lumotlar SQL so'roviga to'g'ridan-to'g'ri qo'shilmaydi, balki parametr sifatida yuboriladi.
Misol (PHP va MySQLi):
$stmt = $connection->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
2. Ma'lumotlarni sanitarizatsiya qilish va validatsiya qilish: Foydalanuvchi kiritgan ma'lumotlarni qabul qilishdan oldin, ularni to'g'ri shaklda ekanligini tekshirish lozim.
3. PDO bilan foydalanish: PDO (PHP Data Objects) bilan tayyorlangan so'rovlarni qo'llash xavfsizlikni oshiradi.
Misol:
$stmt = $connection->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->execute(['username' => $username, 'password' => $password]);
4. Kiruvchi ma'lumotlarni cheklash: Foydalanuvchi kiritishi mumkin bo'lgan ma'lumotlarni cheklash va kerak bo'lsa, ma'lumotlarni maxsus formatga keltirish (masalan, raqamlar, elektron pochta manzillari va boshqalar).
Bu yondashuvlar SQL in'ektsiyadan himoyalanishga yordam beradi va veb-dastur xavfsizligini oshiradi.
👍11🔥2❤1