FastAPI vs Django
Loyihalarda FastAPI ishlatayotganlar bormi. DRF dan qanday ustun taraflari bor deb o'ylaysiz?
Loyihalarda FastAPI ishlatayotganlar bormi. DRF dan qanday ustun taraflari bor deb o'ylaysiz?
👍4
Social Engineering haqida bilasizmi?
Social Engineering(Ijtimoiy muhandislik) - psixologik manipulyatsiya turi boʻlib, insonga psixologik taʼsir qilish orqali, uni xavfsizlik jihatdan xato qilishga majburlash usuli hisoblanadi. Social Engineering da target qilingan shaxs avvalo yaxshilab oʻrganiladi. Qayerda ishlaydi, qayerda oʻqiydi, nimalarni yaxshi koʻradi, qanday janrdagi kitoblarni oʻqiydi, qanday janrdagi kino koʻradi, kimlar bilan koʻproq muloqot qiladi, nima yoqadiyu nima yoqmaydi obdon oʻrganilgandan keyin uni tuzoqqa tushirish oson boʻladi. Hozirgi kunda shaxs haqidagi barcha maʼlumotlarni feysbuk va instagram profillari orqali qoʻlga kiritsa boʻladi.
Target qilingan odam ashaddiy futbol muxlisi boʻlsa, u muxlisi boʻlgan jamoa haqida biror yolgʻon maʼlumot orqali uni tuzoqqa tushirish mumkin. Misol Gʻanisher Manchester City jamoasi muxlisi, uni emailiga(yoki boʻlmasam ijtimoiy tarmoqdagi profillaridan biriga) quyidagicha xabar joʻnatish mumkin.
Salom hurmatli Gʻanisher Teshaboyev,
Manchester City jamoasiga muxlislik qilayotganingiz uchun tashakkur. Biz klubimizga sodiq muxlislarimizni qadrlaymiz. Jamoamizning 120-yilligi munosabati bilan eng yaxshi muxlislardan iborat fan-klub uchrashuvini tashkil qilayotganimizdan bagʻoyat xursandmiz. Muxlislar bilan uchrashuv, 17-noyabr, soat 14:00 da Manchester shahrida boʻlib oʻtadi. Klubimiz qadrdon muxlislariga qulaylik yaratish maqsadida muxlislarning barcha xarajatlari (samalyot bileti, mehmonxona, shahar boʻylab sayr)ni oʻz hisobidan amalga oshirmoqchi.
Agar siz ham ishtirok etmoqchi boʻlsangiz, bugun 18:00 ga qadar roʻyhatdan oʻtishingiz kerak. Joylar cheklanganligi sababli tezroq roʻyhatdan oʻtishingizni soʻrab qolamiz.
Roʻyhatdan oʻtish uchun link: fanmanchester.com/fanclub
Hurmat bilan,
Christopher Willts, muxlislar bilan ishlash bulimi
Gʻanisher bu chorlovni oʻylab ham oʻtirmay shartta linkni bosadi va qarabsizki uni qurilmasiga virusli fayl yuklanadi va barcha maxfiy maʼlumotlari (barcha login/parollari, bank kartalari vahokazo) qoʻlga kiritiladi. Gʻanisher esa xotirjam holda formani toʻldirib, unga bogʻlanishlarini kutib yuraveradi.
Bu yerda kalit soʻzlar:
Manchester City - uning sevimli jamoasi
barcha xarajatlar qoplanishi - bepul narsa qiziqtirish va jalb qilish uchun eng oson yoʻl
joylar cheklangani - bu esa tezroq linkni bosishga undaydi
Bu eng oddiy usullardan biri. Social Engineeringda har bir insonga individual yondoshilganda muvaffaqiyatli amalga oshish koʻrsatgichi yuqori boʻladi.
Bunday usullarga aldanib qolmaslik uchun har bir havola va xabarni sinchkovlik bilan tekshiring, duch kelgan linkni ustiga bosib kirib ketavermang
Social Engineering(Ijtimoiy muhandislik) - psixologik manipulyatsiya turi boʻlib, insonga psixologik taʼsir qilish orqali, uni xavfsizlik jihatdan xato qilishga majburlash usuli hisoblanadi. Social Engineering da target qilingan shaxs avvalo yaxshilab oʻrganiladi. Qayerda ishlaydi, qayerda oʻqiydi, nimalarni yaxshi koʻradi, qanday janrdagi kitoblarni oʻqiydi, qanday janrdagi kino koʻradi, kimlar bilan koʻproq muloqot qiladi, nima yoqadiyu nima yoqmaydi obdon oʻrganilgandan keyin uni tuzoqqa tushirish oson boʻladi. Hozirgi kunda shaxs haqidagi barcha maʼlumotlarni feysbuk va instagram profillari orqali qoʻlga kiritsa boʻladi.
Target qilingan odam ashaddiy futbol muxlisi boʻlsa, u muxlisi boʻlgan jamoa haqida biror yolgʻon maʼlumot orqali uni tuzoqqa tushirish mumkin. Misol Gʻanisher Manchester City jamoasi muxlisi, uni emailiga(yoki boʻlmasam ijtimoiy tarmoqdagi profillaridan biriga) quyidagicha xabar joʻnatish mumkin.
Salom hurmatli Gʻanisher Teshaboyev,
Manchester City jamoasiga muxlislik qilayotganingiz uchun tashakkur. Biz klubimizga sodiq muxlislarimizni qadrlaymiz. Jamoamizning 120-yilligi munosabati bilan eng yaxshi muxlislardan iborat fan-klub uchrashuvini tashkil qilayotganimizdan bagʻoyat xursandmiz. Muxlislar bilan uchrashuv, 17-noyabr, soat 14:00 da Manchester shahrida boʻlib oʻtadi. Klubimiz qadrdon muxlislariga qulaylik yaratish maqsadida muxlislarning barcha xarajatlari (samalyot bileti, mehmonxona, shahar boʻylab sayr)ni oʻz hisobidan amalga oshirmoqchi.
Agar siz ham ishtirok etmoqchi boʻlsangiz, bugun 18:00 ga qadar roʻyhatdan oʻtishingiz kerak. Joylar cheklanganligi sababli tezroq roʻyhatdan oʻtishingizni soʻrab qolamiz.
Roʻyhatdan oʻtish uchun link: fanmanchester.com/fanclub
Hurmat bilan,
Christopher Willts, muxlislar bilan ishlash bulimi
Gʻanisher bu chorlovni oʻylab ham oʻtirmay shartta linkni bosadi va qarabsizki uni qurilmasiga virusli fayl yuklanadi va barcha maxfiy maʼlumotlari (barcha login/parollari, bank kartalari vahokazo) qoʻlga kiritiladi. Gʻanisher esa xotirjam holda formani toʻldirib, unga bogʻlanishlarini kutib yuraveradi.
Bu yerda kalit soʻzlar:
Manchester City - uning sevimli jamoasi
barcha xarajatlar qoplanishi - bepul narsa qiziqtirish va jalb qilish uchun eng oson yoʻl
joylar cheklangani - bu esa tezroq linkni bosishga undaydi
Bu eng oddiy usullardan biri. Social Engineeringda har bir insonga individual yondoshilganda muvaffaqiyatli amalga oshish koʻrsatgichi yuqori boʻladi.
Bunday usullarga aldanib qolmaslik uchun har bir havola va xabarni sinchkovlik bilan tekshiring, duch kelgan linkni ustiga bosib kirib ketavermang
👍20
Ko'p e'tibor beryapman ko'pchilik yoshlar information overload ga tushib qolishgan. Shunchalik ko'p ma'lumot qabul qilishadiki, miya bunday katta hajmdagi ma'lumotlarni hazm qilishga ulgurmaydi va alaloqibat ish va o'qishda muvaffaqiyatga erishish qiyinlashib boraveradi.
Information overload deb qisqa muddat ichida haddan ortiq ko'p ma'lumotni qabul qilishga aytiladi.
50 ga yaqin telegram kanallar, yana nechtadir telegram guruhlardagi muloqot, youtube, kunlik instagramdagi postlar va feysbukdagi janjalli, muhokamali postlar hamma-hammasi miyamizni ma'lumotga to'ldirib, fikrlashimizga va qaror qabul qilishimizda halaqit berishi shubhasiz.
Yo'l qo'yilayotgan xatolardan biri, ma'lumotlarni filtrlay olmaslik va keraksiz ma'lumotlar bilan miyaga ko'p yuklama berib yuborishdir.
Haddan ortiq ma'lumot qabul qilib yuborish, fikrni jamlashga halaqit berib, tog'ri qaror qabul qilish qobiliyatini pasaytirib yuboradi. Fokusni bir joyga qaratishni qiyinlashtirib, ish unumdorligiga ham salbiy ta'sir qiladi.
Yechim:
** Ma'lumotlar oqimidan chetga chiqish, ijtimoiy tarmoqlardan foydalanish vaqtini qatiy cheklash.
** Yangiliklarni faqatgina sarlavhasinigina o'qish bilan kifoyalanish
** Telegramdagi kanal va guruhlar sonini kamaytirish, guruh muhokamalari va tortishuvlardan chetga chiqish
** tiktokni o'chirib tashlash)
** bir vaqtning o'zida faqatgina bir ishgagina fokusni qaratish, multitasking qilmaslik.
Siz qanday yechimlar bergan bo'lardingiz?
Information overload deb qisqa muddat ichida haddan ortiq ko'p ma'lumotni qabul qilishga aytiladi.
50 ga yaqin telegram kanallar, yana nechtadir telegram guruhlardagi muloqot, youtube, kunlik instagramdagi postlar va feysbukdagi janjalli, muhokamali postlar hamma-hammasi miyamizni ma'lumotga to'ldirib, fikrlashimizga va qaror qabul qilishimizda halaqit berishi shubhasiz.
Yo'l qo'yilayotgan xatolardan biri, ma'lumotlarni filtrlay olmaslik va keraksiz ma'lumotlar bilan miyaga ko'p yuklama berib yuborishdir.
Haddan ortiq ma'lumot qabul qilib yuborish, fikrni jamlashga halaqit berib, tog'ri qaror qabul qilish qobiliyatini pasaytirib yuboradi. Fokusni bir joyga qaratishni qiyinlashtirib, ish unumdorligiga ham salbiy ta'sir qiladi.
Yechim:
** Ma'lumotlar oqimidan chetga chiqish, ijtimoiy tarmoqlardan foydalanish vaqtini qatiy cheklash.
** Yangiliklarni faqatgina sarlavhasinigina o'qish bilan kifoyalanish
** Telegramdagi kanal va guruhlar sonini kamaytirish, guruh muhokamalari va tortishuvlardan chetga chiqish
** tiktokni o'chirib tashlash)
** bir vaqtning o'zida faqatgina bir ishgagina fokusni qaratish, multitasking qilmaslik.
Siz qanday yechimlar bergan bo'lardingiz?
👍39🔥2
UniqueValidator qanday ishlaydi?
Django rest frameworkda validatsiyalar turlari ko'p. Modelga kiritilayotgan ma'lumotni unique(yagona) yoki unique emasligini tekshirish uchun aynan UniqueValidator ancha foydali.
bizda slug nomli fieldimiz bor:
Agar ma'lumotni jo'natmasimizdan oldin xatolikni bilishimiz kerak bo'lsa, unday holatda serializer qismida ham validatsiya ishlatishimiz kerak.
Django rest frameworkda validatsiyalar turlari ko'p. Modelga kiritilayotgan ma'lumotni unique(yagona) yoki unique emasligini tekshirish uchun aynan UniqueValidator ancha foydali.
bizda slug nomli fieldimiz bor:
class Model:
slug = SlugField(max_length=150, unique=True)
unique=True validatsiyasi qachonki biz ma'lumotlar bazasiga kiritayotganimizda tekshirib, agar validatsiyadan o'tmasa xatolik chiqaradi. Ya'ni xatolik bazadan keladi. Agar ma'lumotni jo'natmasimizdan oldin xatolikni bilishimiz kerak bo'lsa, unday holatda serializer qismida ham validatsiya ishlatishimiz kerak.
from rest_framework.validators import UniqueValidator
slug = SlugField(
max_length=150,
validators=[UniqueValidator(queryset=Post.objects.all())]
)
queryset - Post nomli tabledagi ma'lumotlar ichida slug field unique bo'lishi kerakligini anglatadi. Ya'ni biz uniqueness ni Post modeli ichidan qo'llayapmiz.👍14
UniqueTogetherValidator haqida
UniqueValidator faqatgina bittagina model fieldini takrorlanmaslik sharti bo'yicha tekshiradigan bo'lsa, UniqueTogetherValidator bir vaqtning o'zida 2 ta model fieldini uniqueness(takrorlanmaslik) sharti bo'yicha tekshiradi.
UniqueTogetherValidator ga real misollar
Bitta foydalanuvchi faqatgina bittagina izoh yoza oladigan qilmoqchi bo'lsak, ancha qo'l keladi.
Misol uchun Comment modeli bor:
fields - bu qaysi model fieldlarining birgalikda takrorlanmasligi kerakligini bildiradi.
UniqueValidator faqatgina bittagina model fieldini takrorlanmaslik sharti bo'yicha tekshiradigan bo'lsa, UniqueTogetherValidator bir vaqtning o'zida 2 ta model fieldini uniqueness(takrorlanmaslik) sharti bo'yicha tekshiradi.
UniqueTogetherValidator ga real misollar
Bitta foydalanuvchi faqatgina bittagina izoh yoza oladigan qilmoqchi bo'lsak, ancha qo'l keladi.
Misol uchun Comment modeli bor:
class Comment:xuddi shu model uchun serializer yozamiz.
text = TextField()
user = ForeignKey(User)
time = DateTimeField()
from rest_framework.validators import UniqueTogetherValidatorqueryset - Comment nomli tabledagi ma'lumotlar ichida slug text va user fieldlari unique bo'lishi kerakligini anglatad.
class MyModel1Seriealizer(serializers.ModelSerializer):
class Meta:
model = Comment
validators = [UniqueTogetherValidator(queryset=Comment.objects.all(), fields=('user', 'text') )
]
fields - bu qaysi model fieldlarining birgalikda takrorlanmasligi kerakligini bildiradi.
👍9
Junior Backend python dasturchi nimalarni bilishi kerak deb o'ylaysiz?
👍12🔥3⚡1🤩1
Junior python dasturchi bilishi kerak bo'lgan bilimlar
Dasturchilarga qo'yilayotgan talab kundan kunga yuqorilab boryapti. Ba'zida junior dasturchilarga qo'yilayotgan talabni ko'rib, bu talabga ba'zi seniorman deb yurganlar ham javob berolmaydiku degan fikr hayolimdan o'tadi. Bu ham bozor qonuniyati, junior dasturchilarga bo'lgan talabdan, IT bozoridagi taklif bir necha karra ko'pligi sabab, ish beruvchilar ham chertib-chertib, bir necha chig'iriqdan o'tkazib eng yaxshilarini olishga harakat qilyapti. Ularni ham to'g'ri tushunish kerak, chunki oylik to'lagandan so'ng, shunga yarasha kompaniya uchun qiymat beradigan dasturchi qidiradi. Buyog'i endi BIZNES
Hozirda junior dasturchi uchun IT market tomonidan qo'yilayotgan talablar quyidagicha bo'lyapti:
✅ Algoritmlar haqida tushuncha, fundamental bilim (searching va sorting algoritmlar)
✅ Python dasturlash tili (OOP, dekoratorlar, data types, polymorphism, inheritance tushunchalari)
✅ Flask yoki Django freymvorki (template orqali loyiha qila olish darajasida)
✅ Django Rest Framework(murakkab API qura olish, oddiygina CRUD emas)
✅ SQL, NoSQL (kamida Postgres bilan ishlay olish, querylar yoza olish, join turlarini bilish va qo'llay olish)
✅ Git buyruqlari bilan erkin ishlay olish, terminalda ishlay olish
✅ Celery, Redis va Django-channels
Bilish katta ustunlik beradi:
✅ Docker bilan ishlash, loyihani docker bilan birgalikda AWS serverga yuklash
✅ CI/CD bilan ishlay olish
Bular hammasi, ish e'lonlarini ko'rib va shu yaqin orada ish va amaliyotga kirganlar bilan suhbatlashib qilgan xulosam. Bu talablardan kamroq ham, ko'proq ham bo'lishi mumkin.
P.S. Yuqoridagilarni bilgan holda ishga qabul qilinish ehtimolingiz juda yuqori
Dasturchilarga qo'yilayotgan talab kundan kunga yuqorilab boryapti. Ba'zida junior dasturchilarga qo'yilayotgan talabni ko'rib, bu talabga ba'zi seniorman deb yurganlar ham javob berolmaydiku degan fikr hayolimdan o'tadi. Bu ham bozor qonuniyati, junior dasturchilarga bo'lgan talabdan, IT bozoridagi taklif bir necha karra ko'pligi sabab, ish beruvchilar ham chertib-chertib, bir necha chig'iriqdan o'tkazib eng yaxshilarini olishga harakat qilyapti. Ularni ham to'g'ri tushunish kerak, chunki oylik to'lagandan so'ng, shunga yarasha kompaniya uchun qiymat beradigan dasturchi qidiradi. Buyog'i endi BIZNES
Hozirda junior dasturchi uchun IT market tomonidan qo'yilayotgan talablar quyidagicha bo'lyapti:
✅ Algoritmlar haqida tushuncha, fundamental bilim (searching va sorting algoritmlar)
✅ Python dasturlash tili (OOP, dekoratorlar, data types, polymorphism, inheritance tushunchalari)
✅ Flask yoki Django freymvorki (template orqali loyiha qila olish darajasida)
✅ Django Rest Framework(murakkab API qura olish, oddiygina CRUD emas)
✅ SQL, NoSQL (kamida Postgres bilan ishlay olish, querylar yoza olish, join turlarini bilish va qo'llay olish)
✅ Git buyruqlari bilan erkin ishlay olish, terminalda ishlay olish
✅ Celery, Redis va Django-channels
Bilish katta ustunlik beradi:
✅ Docker bilan ishlash, loyihani docker bilan birgalikda AWS serverga yuklash
✅ CI/CD bilan ishlay olish
Bular hammasi, ish e'lonlarini ko'rib va shu yaqin orada ish va amaliyotga kirganlar bilan suhbatlashib qilgan xulosam. Bu talablardan kamroq ham, ko'proq ham bo'lishi mumkin.
P.S. Yuqoridagilarni bilgan holda ishga qabul qilinish ehtimolingiz juda yuqori
👍37🔥9🎉2👎1
Siz dasturchi bo'lib ishlaysizmi yoki o'rganish bosqichidamisiz?
Anonymous Poll
41%
Dasturlashni endi o'rganyapman
10%
Stajyor bo'lib ishlayapman
14%
Mahalliy kompaniyada dasturchi bo'lib ishlayman
3%
Chet el kompaniyasida dasturchi bo'lib ishlayman
32%
Ish qidiryapman
⚡22👍10👎3
Kanalda 1200 dan oshiq obunachilarimiz bor ekan, ular bilan suhbatlashsak qiziq bo'lsa kerak?)
"Ask me anything" tarzida savol-javob qilsak, nima deysiz?
Izohlarda xohlagan savolingizni bering. Javob berishga harakat qilaman.
"Ask me anything" tarzida savol-javob qilsak, nima deysiz?
Izohlarda xohlagan savolingizni bering. Javob berishga harakat qilaman.
👍33🔥2
Agar siz oliy matematika va statistika haqida nimadir qilsangiz, yangilikmi yoki biror o'quv qo'llanma. Uni faqat oliy matematika va statistikani biladigan darajadagi odamlar tushunadi.
Agar karra jadvali haqida qilsangiz, sizning auditoriyangiz bir necha o'n barobar kengayadi, chunki karra jadvalini hamma maktabda o'qigan.
Agar siz "prosta" raqamlar haqida qilsangiz, oddiy raqamlarni karra jadvalidan ham ko'proq odamlar biladi.
Darajani qanchalik tushurib borsangiz, auditoriyangiz shunchalik kengayib boraveradi.
©subyektiv
P.S. Endi tushundingizmi, nima uchun, qayoqdagi tiktokerlaru, soxta treningchi psixologchilarni auditoriyasi juda ko'pligini.
@djangodarslari
Agar karra jadvali haqida qilsangiz, sizning auditoriyangiz bir necha o'n barobar kengayadi, chunki karra jadvalini hamma maktabda o'qigan.
Agar siz "prosta" raqamlar haqida qilsangiz, oddiy raqamlarni karra jadvalidan ham ko'proq odamlar biladi.
Darajani qanchalik tushurib borsangiz, auditoriyangiz shunchalik kengayib boraveradi.
©subyektiv
P.S. Endi tushundingizmi, nima uchun, qayoqdagi tiktokerlaru, soxta treningchi psixologchilarni auditoriyasi juda ko'pligini.
@djangodarslari
👍31🔥5⚡1
Django darslari (Mukhammad irmatov)
Bizda rostdan ham xavfsizlikka unchalik ham ko'p e'tibor berishmaydi. Loyihani tezroq egasiga topshirsa va o'sha loyihani yopsa bo'ldi. Ya'ni qo'l uchida qilish qon-qonimizga singib ketgan)
Xavfsizlikka e'tibor berish uchun ham avvalo dasturchilarni o'zlari ehtimoliy hujum senariylarini taxmin qila olish kerak. Kerak bo'lsa vaqtini sarflab, qanday qilib dasturni buzishni, zaif nuqtalarini topishni, dasturning aynan qaysi qismlari orqali hujum bo'lishini o'rganishi zarar qilmaydi. Eng kamida DDoS va brute force attack turlarni o'rganib olish kerak.
Odatda eng ko'p hujumlar, formalar va ro'yhatdan o'tish qismida bo'ladi. Ro'yhatdan o'tish qismiga botlar va turli dasturlar orqali bir vaqtning o'zida minglab, millionlab ariza ya'ni so'rov jo'natadi. Bir vaqtning o'zida buncha so'rovni ko'tara olmagan server esa odatda ishdan chiqadi va tayyor o'lja bo'ladi.
Bunday xujumlarni oldini olish uchun, odatda serverga ko'plab so'rov bo'lgan vaqtda avtomatik bloklash funksiyasini qo'shib ketish kerak. Ya'ni bir user uchun bir daqiqa ichida faqatgina nechtadir so'rov yubora olish limitini qo'yish kerak. Yoki bo'lmasam login va boshqa formalar uchun ham captcha va bot yoki botmasligini tekshiradigan biror bir mexanizm o'ylab chiqish kerak.
API ga yuborilayotgan so'rovlarni limitlash uchun Djangoda tayyor throttling funksiyasi bor, uni o'zingiz custom qilib o'zgartirib dasturingizga qo'shsangiz ancha himoya ishonchli bo'ladi. Formalar uchun tayyor package django-recaptcha ni ishlatishingiz mumkin.
@djangodarslari
Odatda eng ko'p hujumlar, formalar va ro'yhatdan o'tish qismida bo'ladi. Ro'yhatdan o'tish qismiga botlar va turli dasturlar orqali bir vaqtning o'zida minglab, millionlab ariza ya'ni so'rov jo'natadi. Bir vaqtning o'zida buncha so'rovni ko'tara olmagan server esa odatda ishdan chiqadi va tayyor o'lja bo'ladi.
Bunday xujumlarni oldini olish uchun, odatda serverga ko'plab so'rov bo'lgan vaqtda avtomatik bloklash funksiyasini qo'shib ketish kerak. Ya'ni bir user uchun bir daqiqa ichida faqatgina nechtadir so'rov yubora olish limitini qo'yish kerak. Yoki bo'lmasam login va boshqa formalar uchun ham captcha va bot yoki botmasligini tekshiradigan biror bir mexanizm o'ylab chiqish kerak.
API ga yuborilayotgan so'rovlarni limitlash uchun Djangoda tayyor throttling funksiyasi bor, uni o'zingiz custom qilib o'zgartirib dasturingizga qo'shsangiz ancha himoya ishonchli bo'ladi. Formalar uchun tayyor package django-recaptcha ni ishlatishingiz mumkin.
@djangodarslari
🔥14👍9😱1
Django darslari (Mukhammad irmatov)
Xavfsizlikka e'tibor berish uchun ham avvalo dasturchilarni o'zlari ehtimoliy hujum senariylarini taxmin qila olish kerak. Kerak bo'lsa vaqtini sarflab, qanday qilib dasturni buzishni, zaif nuqtalarini topishni, dasturning aynan qaysi qismlari orqali hujum…
P.S.
Xakerlik va buzib kirish maqtaladigan yaxshi ish emas. Kun.uz sahifasi tagidagi izohlarni o'qisam, odamlar mana bizdan ham shunaqa xakerlar chiqar ekanku deb chapak chalib xursand bo'lib yotishibdi.
Xakerlik ham birovning mulkini o'g'irlash va unga zarar yetkazish kabi yaxshi ish emas. Ya'ni kimdirning mashinasi qulfini ustamonlik bilan buzib kirish yoki uyini qulfini buzib kirib, biror nimasinidir o'g'irlab buzib ketish bilan barobar. Ikkisi ham beruxsat boshqa birovning mol-mulkiga tajovuz qilayotgan hisoblanadi.
@djangodarslari
Xakerlik va buzib kirish maqtaladigan yaxshi ish emas. Kun.uz sahifasi tagidagi izohlarni o'qisam, odamlar mana bizdan ham shunaqa xakerlar chiqar ekanku deb chapak chalib xursand bo'lib yotishibdi.
Xakerlik ham birovning mulkini o'g'irlash va unga zarar yetkazish kabi yaxshi ish emas. Ya'ni kimdirning mashinasi qulfini ustamonlik bilan buzib kirish yoki uyini qulfini buzib kirib, biror nimasinidir o'g'irlab buzib ketish bilan barobar. Ikkisi ham beruxsat boshqa birovning mol-mulkiga tajovuz qilayotgan hisoblanadi.
@djangodarslari
🔥17👍11💯3👎2👏1
#savol:
djangoda deface, ddos, sql injection lardan qanday himoyalansa boladi?
#javob:
Deface - adashmasam, saytni buzib kirgandan so'ng bajariladigan amal, ya'ni asosiy sahifani o'zlari xohlashgandek o'zgartirib ketishadi, Hacked by... degandek)
SQL Injection - bu turdagi xakerlik hujumidan django shundoq ham himoyalangan. Odatda djangoda ma'lumotlar bazasiga SQL query bilan emas, django ORM bilan murojaat qilinadi. Agar dasturda to'g'ridan to'g'ri SQL query bilan murojaat qilinadigan qism bo'lmasa, Django dasturiga SQL injection bilan hujum qilib buzib bo'lmaydi.
DDOS hujumini oldini olish uchun, django uchun Django-axes, Django-defender, Django-ratelimit kabi tayyor packagelar bor. Shulardan foydalaning. Agar DRF bo'ladigan bo'lsa, yuqoridagi packagelar ham kerak emas. DRF da tayyor throttling funksiyasi bor, limitlash va cheklash uchun ishlatiladi. Bundan tashqari, quyidagicha yechimlar ham ancha samarali bo'ladi:
1) Muvaffaqiyatsiz loginlarni saqlab borib, nechtadir xato urinishdan so'ng, o'sha IP ni bloklash
2) Agar bloklashni xohlamasangiz, CAPTCHA ishlating
3) Har muvaffaqiyatsiz login qilingandan so'ng keyingi login amalini bajarish uchun, ma'lum bir vaqt belgilang. Misol uchun, 3 marta muvaffaqiyatsiz urinishdan so'ng, keyingi login qilish uchun 60 sekund kutish kerak, keyingisida 100 sekund va hokazo.
P.S. Eng asosiysi, oddiy xavfsizlik qoidalariga amal qilishni unutmang. Maxfiy parollaringizni, ma'lumotlarni ochiq fayllarda qoldirmang. Admin qismi uchun admin/123456789 kabi parollardan foydalanmang 😁.
@djangodarslari
djangoda deface, ddos, sql injection lardan qanday himoyalansa boladi?
#javob:
Deface - adashmasam, saytni buzib kirgandan so'ng bajariladigan amal, ya'ni asosiy sahifani o'zlari xohlashgandek o'zgartirib ketishadi, Hacked by... degandek)
SQL Injection - bu turdagi xakerlik hujumidan django shundoq ham himoyalangan. Odatda djangoda ma'lumotlar bazasiga SQL query bilan emas, django ORM bilan murojaat qilinadi. Agar dasturda to'g'ridan to'g'ri SQL query bilan murojaat qilinadigan qism bo'lmasa, Django dasturiga SQL injection bilan hujum qilib buzib bo'lmaydi.
DDOS hujumini oldini olish uchun, django uchun Django-axes, Django-defender, Django-ratelimit kabi tayyor packagelar bor. Shulardan foydalaning. Agar DRF bo'ladigan bo'lsa, yuqoridagi packagelar ham kerak emas. DRF da tayyor throttling funksiyasi bor, limitlash va cheklash uchun ishlatiladi. Bundan tashqari, quyidagicha yechimlar ham ancha samarali bo'ladi:
1) Muvaffaqiyatsiz loginlarni saqlab borib, nechtadir xato urinishdan so'ng, o'sha IP ni bloklash
2) Agar bloklashni xohlamasangiz, CAPTCHA ishlating
3) Har muvaffaqiyatsiz login qilingandan so'ng keyingi login amalini bajarish uchun, ma'lum bir vaqt belgilang. Misol uchun, 3 marta muvaffaqiyatsiz urinishdan so'ng, keyingi login qilish uchun 60 sekund kutish kerak, keyingisida 100 sekund va hokazo.
P.S. Eng asosiysi, oddiy xavfsizlik qoidalariga amal qilishni unutmang. Maxfiy parollaringizni, ma'lumotlarni ochiq fayllarda qoldirmang. Admin qismi uchun admin/123456789 kabi parollardan foydalanmang 😁.
@djangodarslari
👍18🔥1
Django darslari (Mukhammad irmatov)
#savol: djangoda deface, ddos, sql injection lardan qanday himoyalansa boladi? #javob: Deface - adashmasam, saytni buzib kirgandan so'ng bajariladigan amal, ya'ni asosiy sahifani o'zlari xohlashgandek o'zgartirib ketishadi, Hacked by... degandek) SQL Injection…
def search(request):Yuqoridagi kodni ko'radigan bo'lsak, bu qidiruv uchun ishlatilgan.
query = request.GET['q']
sql = f"SELECT * FROM some_table WHERE title LIKE '%{query}%';"
cursor = db.cursor()
cursor.execute(sql)
Bu koddagi muammo shundaki, request.GET['q'] orqali, Userdan ma'lumot olinyapti va u orqali ma'lumotlar bazasiga so'rov yuborilyapti.
Tasavvur qiling foydalanuvchi shu yerda oddiy matn emas, SQL query yozib ma'lumotlar bazasidan bemalol foydalanishi mumkin.
Aytaylik, User '; DELETE FROM some_table' ni forma orqali jonatdi. Unda bazaga quyidagicha so'rov boradi:
SELECT * FROM some_table WHERE title LIKE '%%'; DELETE FROM some_table;Bu esa, ma'lumotlar bazangiz uchun yaxshilikka olib kelmasligi aniq)
👍22🔥6⚡4
#savol:
Django rest frameworkda serializer yozilgan, o'sha serializerni qanday qilib filtr qilish mumkin agar u boshqa serializerga nested qilingan bo'lsa.
Views qismida override qilish biroz murakkab chunki, oddiy APIView emas, Viewset ishlatilingan, serializerni override qilish to'g'ri yechim emas
Django rest frameworkda serializer yozilgan, o'sha serializerni qanday qilib filtr qilish mumkin agar u boshqa serializerga nested qilingan bo'lsa.
class productSerializer(ModelSerialzier):Product list chaqirilganda, bitta productni barcha reviewlari chiqadi. Qachonki admin tomonidan biror review berkitilsa, is_hidden=True qilinsa, productda hide qilingan reviewlar ko'rinmasligi kerak
* guid = UUIDField()
* name = charField()
* reviews = ReviewSerializer(many=True, read_only=True)
class ReviewSerializer(ModelSerializer):
* guid = UUIDField()
* author = AuthorSerializer(read_only=True)
* review = TextField()
* is_hidden = BooleanField(default=False)
Views qismida override qilish biroz murakkab chunki, oddiy APIView emas, Viewset ishlatilingan, serializerni override qilish to'g'ri yechim emas
👍1
Django darslari (Mukhammad irmatov)
#savol: Django rest frameworkda serializer yozilgan, o'sha serializerni qanday qilib filtr qilish mumkin agar u boshqa serializerga nested qilingan bo'lsa. class productSerializer(ModelSerialzier): * guid = UUIDField() * name = charField() * reviews = R…
#javob
2 ta yechim bor. 1-si ReviewSerializerga to_representation orqali faqat is_hidden=False bo'lganlarni chiqarmaslik kerak.
2-yechim esa ReviewSerializerga yana bitta FilterSerializer yozish kerak, masalan
Endigi ish, filtrlangan serializerni Reviewserializerga ulab qo'yish kerak:
2 ta yechim bor. 1-si ReviewSerializerga to_representation orqali faqat is_hidden=False bo'lganlarni chiqarmaslik kerak.
2-yechim esa ReviewSerializerga yana bitta FilterSerializer yozish kerak, masalan
class FilterHiddenReviewListSerializer(serializers.ListSerializer):Ya'ni alohida bitta FilterReviewList yozildi, u orqali reviewlarni filtrlab oldik
def to_representation(self, data):
data = data.filter(is_hidden=False)
return super().to_representation(data)
Endigi ish, filtrlangan serializerni Reviewserializerga ulab qo'yish kerak:
class ReviewSerializer(ModelSerializer):Agar sizda bundanda optimal yechim bo'lsa izohlarda qoldirishingiz mumkin.
* guid = UUIDField()
* author = AuthorSerializer(read_only=True)
* review = TextField()
* is_hidden = BooleanField(default=False)
class Meta:
list_serializer_class = FilterHiddenReviewListSerializer
🔥10👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Mohirdevni yangi ofisi judayam shinam va ancha qulay ham bo'libdi
👍13🔥7🤩1
Siz shundoqqina click yoki payme orqali to'lov qilganingizda shuncha jarayondan o'tibgina, to'lov amalga oshadi
@djangodarslari
@djangodarslari
👍21⚡5🔥3😱3