Telegram Group Search
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
سال نو همه مبارک.
نکته از کتاب Fluent Python
Forwarded from Python Hints
وقتی صحبت از امنیت میشه خیلی از توسعه دهنده‌های اینکار رو وظیفه تیم امنیت می‌دونند؛ که خب درست هم هست ولی تا یک جایی. شما هم بعنوان توسعه دهنده باید یک سری موارد رو بدونید.
مثلا خیلی دیدم؛ تیم‌های تست نفوذ فراموش می‌کنند (دسترسی ندارند) الگوریتم hash کردن پسورد داخل دیتابیس رو چک کنند؛ اینجا دانش شما بعنوان برنامه‌نویس پروژه خودش رو نشون میده و یک لایه اطمینان بیشتر برای پروژه خواهد بود.

دمشون گرم؛ تیم توسعه Django رو می‌گم چرا که اکثر اتک‌های مهم رو تا جایی که امکانش هست جلوگیری می‌کنند و برای همین هم همیشه می‌گم بکند رو فارغ از فریمورک یاد بگیرید. با این حال بسیاری دولوپر Django هست که حتی زحمت بررسی و آپدیت به آخرین پچ‌های امنیتی رو به خودش نمیده مثلا pip freeze و version locking استفاده کرده.

توی بعضی مواقع هم دانستن بعضی نکات امنیتی برای optimization بهتون کمک می‌کنه؛ مثلا توی password hash ممکن هست تحت یک شرایط خاصی اصلا الگوریتمی مثل Argon2 به کار شما نیاد و به دلایلی بهش نیاز نداشته باشید تحت این شرایط می‌تونید برگردید روی sha256 و از اون استفاده کنید (این یک مثال بود اگر argon2 رو نمی‌شناسید درموردش بخونید؛ توی لیست PASSWORD_HASHERS های Django هم هست ولی خود Django از PBKDF2 استفاده می‌کنه پیشفرض)


خیلی از برنامه‌نویس‌ها سرویس login امنی دارند که از موارد امنیتی خوبی هم استفاده می‌کنه throttling, brute-force blocker, hashing و ... اما بعضی موارد باید فراتر ازین بره؛ چیزی که خیلی ندیدم حتی روی بعضی سرویس‌های لاگین شرکت‌های بزرگ و موارد حساس.
فرض کنید شما login با ایمیل اعضای شرکت بزنید (ایمیل‌های شرکتی اصول خاصی داره و راحت بدست میاد) اگر ایمیل اشتباه باشه response time شاید زیر 20ms باشه ولی وقتی ایمیل درست هست بالای 100ms می‌شه این یکی از تکنیک‌‌های قدیمی مورد استفاده برای نفوذ به صفحات ادمین بوده و هست. شما وقتی username. email رو پیدا کنی یک نگرانی کمتر خواهی داشت.
برای همین کسی که با این موارد آشنا هست؛ برای اینکه response time لاگین درست و غلط رو یکسان کنه وقتی می‌بینه یوزر وجود نداره بجای اینکه درجا پاسخ رو برای کاربر بفرسته یکبار پسورد رو با یک چیز رندم (طبق validation نمی‌تونه توی دیتابیس باشه) حساب می‌کنه و بعد response اطلاعات غلط روی لاگین رو بر می‌گردونه.


البته که من برای این مثال دست روی یک موردی گذاشتم که خیلی‌ها رعایت نمی‌کنند (شاید نیازی هم ندارند) و خیلی‌ها بلد نیستند (باید دنبال یک جیزی هم می‌گشتم که خود django امن نکرده باشه)

یا مثلا توی کار با دیتا قبول نکردن دیتای pickle؛ اینو برگردید بالا من همون اوایل شروع کار کانال گفتم با مثال و حدود ۶ ماه قبل یکی از خوبای دنیای تکنولوژی با همین روش بهش نفوذ شد (hugging face رو منظورم هست)

یا توی شرکت‌هایی که یوزر فایل آپلود می‌کنه و نیروی انسانی باید فایل رو بررسی کنه؛ خیلی وقتا دیدم فقط پسوند فایل بررسی میشه و ...

حالا چه چیزهایی رو باید بعنوان دولوپر بدونید ؟ OWASP TOP 10 حداقلی ترین مواردی هست که شما بعنوان یک دولوپر باید بشناسید و راهای مقابله باهاش رو هم بلد باشید.

ولی بطور خاص برای Django Rest Framework حداقل این cheathseet رو باید داشته باشد
OWASP cheatsheet for DRF

من یک cheatsheet شخصی خودم دارم (شامل مواردی از بخش‌های مختلف همین cheatsheet هم هست) ولی متاسفانه نمی‌تونم به اشتراک بذارم چون آخرین ورژن رو با داکیومنت شرکت ادغام کردم. اما پیشنهاد میدم لینک بالا رو بخونید و حتما حتما حتما نگاهی هم به رفرنس‌هاشون بندازید این خیلی مهمه.
استفاده از Django-storage در محیط پروداکشن

از لینکدین Farzin Shams

قطعا در پروژه‌های Django از فایل‌های مدیا استفاده کردید و میدونید برای بهینه بودن پروژه بهتره این فایل‌هارو روی سروری که پروژه ران شده ذخیره نکنید. دلایل مختلفی برای این کار وجود داره! چون:

🔹 سرور فضای محدودی داره
🔹 سرعت پایینه
🔹 بک‌آپ‌گیری و امنیت سخته
🔹 مقیاس‌پذیر نیست

اینجاست که django-storages به کمک ما میاد:

یک پکیج کاربردی که کمک می‌کنه فایل‌ها رو به‌جای ذخیره‌سازی محلی، روی فضای ابری آپلود کنیم، مثل:

Amazon S3
Google Cloud
Azure

از اونجایی که اکثر سرویس دهنده‌های خارجی از ایران قابل استفاده نیستن، شما به راحتی میتونید با استفاده از سرویس‌های S3 ایرانی مثل ابر آروان، دادیار، لیارا و ... تجربه بهتری رو برای کاربران سایت خودتون رقم بزنید.
.
💡 با این کار، همه‌ی فایل‌های آپلودی روی فضای ابری ذخیره می‌شن؛ که موجب سریع‌تر، امن‌تر و مقیاس‌پذیرتر شدن پروژه‌های جنگویی شما میشه.
.
اگر تجربه کار با django-storages یا اتصال به سرویس‌های ابری ایرانی رو داشتی، خوشحال می‌شم نظرتون رو بدونم!
.
لینک: https://lnkd.in/e9EgFTpC
چرا Multi-Threading در پایتون مثل جاوا کار نمی‌کنه؟

از لینکدین Majid BagherZadeh
کامنت های پستش رو بخونید. لینک این پست

یکی از تفاوت‌های جالب بین زبان‌های برنامه‌نویسی اینه که "Thread" در هر زبان لزوماً به معنای واقعی خودش اجرا نمی‌شه!

🔹 در جاوا، Threadها واقعاً می‌تونن روی چندین هسته CPU اجرا بشن، مخصوصاً حالا که با Virtual Threads در جاوا ۲۱، اجرای هم‌زمان بسیار سبک‌تر و مقیاس‌پذیرتر شده.

🔹 اما در پایتون، یک چیزی به نام GIL (Global Interpreter Lock) وجود داره که باعث می‌شه در هر لحظه فقط یک Thread بتونه اجرا بشه، حتی اگه چند Thread ساخته باشیم! به همین خاطر، در پایتون برای استفاده از تمام هسته‌های CPU معمولاً به جای Multi-Threading از Multi-Processing استفاده می‌کنن.

💡 نتیجه؟
اگر توی جاوا Thread بسازید، واقعاً روی چند هسته اجرا می‌شه. اما توی پایتون، ساختن چندین Thread لزوماً به معنی اجرای هم‌زمان واقعی نیست! به جای اون، در پایتون پردازش‌های موازی بیشتر با Multi-Processing انجام می‌شن تا بتونن از همه‌ی قدرت CPU استفاده کنن.

🔥 این یکی از اون تفاوت‌هایی‌ـه که اگر بهش دقت نکنید، ممکنه فکر کنید Multi-Threading همیشه همون معنی رو داره—ولی در عمل، بستگی داره که توی چه زبانی کار می‌کنید!

🚀 شما چقدر به این تفاوت‌ها توجه کردید؟ تجربه‌ای در این زمینه داشتید؟
Shahab.pdf
527.1 KB
محدود کردن قبلِ از کار افتادن سیستم
از لینکدین Shahab Bozorgi

ا Throttling یکی از روش‌های مهم برای مدیریت درخواست‌ها و جلوگیری از فشار بیش از حد روی سرور‌هاست
تو این پست باهاش آشنا می‌شیم

تو جنگو میتونیم با استفاده از DRF خیلی راحت Throttling رو پیاده‌سازی کنیم
این قابلیت بهمون کمک می‌کنه تعداد درخواست‌ هایی که هر کاربر یا کل سیستم میتونه در یک بازه زمانی مشخص بفرسته رو کنترل کنیم

چجوری از Throttling تو DRF استفاده کنیم؟!
ا DRF چند نوع Throttle پیش‌فرض داره:
AnonRateThrottle → برای کاربران ناشناس
UserRateThrottle → برای کاربران لاگین کرده
ScopedRateThrottle → برای محدود کردن درخواست‌ها در سطح API خاص
کافیه این تنظیمات رو توی settings.py اضافه کنیم و مقدار دلخواهمون رو تنظیم کنیم
با این روش از overload شدن سرور هم جلوگیری می‌کنیم.
seo_jozzz.pdf
41 MB
این جزوه رو Hojjat Mesgari توی لینکدینش گذاشته بود.
جزوه دوره سئو خودشه ظاهرا
فکر می کردم جزوه فقط مال دانشگاس
ولی عجب حوصله ای داشته طرف
لینک پست
از بعد از دیدن این
https://github.com/odoo/odoo

دیگه به پایتون احترام میزارم.
لکن، ریپو قابل احترام میشناسی کامنت کن لطفا
Django Chat

A biweekly podcast on the Django Web Framework by Will Vincent and Carlton Gibson

پادکست هاش درباره جنگو هستن


https://djangochat.com/?trk=feed-detail_main-feed-card-text
من میلاد حاتمی، برنامه نویس از سال 2008، قصد دارم به علاقمندان یادگیری طراحی سایت، به صورت خصوصی جنگو آموزش دهم.
🎯در صورتی که من مربی خصوصی جنگو شما بصورت آنلاین باشم:
⚡️یک اینترنت پر سرعت نیاز دارید.
قبل از شروع اولین جلسه به صورت رایگان:
⚡️با سوالاتی ساده، سطح مهارت شما در جنگو را ارزیابی می کنم.
⚡️به سوالات شما در مورد سرفصل ها پاسخ می دهم.
⚡️در صورت تمایل شما، با هم یک پروژه برای آموزش مشخص می کنیم.
⚡️در مورد هزینه، تعداد جلسات، ساعت آموزش و… صحبت می کنیم.
در طول جلسه :
⚡️نکات کاربردی را به شما یاد می دهم.
⚡️آموزش یکطرفه نخواهد بود و شما هم کد می نویسید و با چالش هایی مواجه خواهید شد.
⚡️با برخی ابزارهای کنترل سورس نظیر github آشنا خواهید شد.
⚡️با روش صحیح جستجوی سوالات برنامه نویسی در سایت های معتبر آشنا می شوید.
⚡️شما مجازید یک میلیون سوال بپرسید 🙂
بعد از هر جلسه:
⚡️با هم آموزش را مرور می کنیم.
⚡️در صورت لزوم به شما تمرین می دهم.
⚡️نظر شما را جهت بهتر شدن جلسه بعدی می پرسم.
⚡️در مورد جلسه بعدی برنامه ریزی می کنیم.
جهت ارتباط با من با @miladhzz در ارتباط باشید
روز معلم مبارک.

امسال اولین سالی هست که پیام تبریک روز معلم برام فرستادن. خوشحالم که معلم شدم بالاخره 🤩

۱۲ اردیبهشت در ایران ‎روز معلم است. این روز اولین بار به دلیل کشته شدن ‎ابوالحسن خانعلی در تجمع۱۲ اردیبهشت۱۳۴۰ معلمان که به استعفای شریف امامی نخست وزیر وقت منجر شد و بار دوم پس از ترور و شهادت مرتضی مطهری، روز معلم نام گرفت.
مطلبی در مورد لاگ از کانال @pyHints
کانفیگ logging برای من همیشه اذیت کننده هست.
بخش عمده‌ای از تسک‌های من مربوط میشه به
Deep learning, ML engineering

اما وجه دیگه کارم backend هست و software engineer برای همین خیلی کم پیش میاد نیاز داشته باشم ی لاگر با جزئیات بنویسم

از طرفی هم ۹۰٪ کدهایی که از بچه‌های بکند تحویل میگیرم ی logging نوشته شده که حافظه زیادی قرار هست بگیره (بخصوص روی سرور تست دارم صحبت میکنم که حجم لاگ بالا میره)

این کد رو قبلا برای Django نوشتم ؛ توضیح دادم تقریبا چند هفته بعد از شروع یادگیری یکی از بدترین پروژه‌های شرکت رو دست گذاشتم روش و شروع کردم به بازنویسی این لاگر رو برای اون نوشتم

هر لاگ فایل تا ۱۰ مگ حجم می‌تونه اشغال کنه و بعد از اون فایل ذخیره میشه به اسم backup تا ۱۰ تا ورژن ازین بکاپ‌ها نگه میدارم فقط و روی نسخه ۱۱
log rotate
میخوره و قدیمی‌ترین فایل حذف میشه

البته این خیلی ساده‌اس ولی خب از اون کیلویی اضافه کردن logging فایل قطعا بهتره

پیشنهاد میدم شما هم ازین کد بعنوان base استفاده کنید و لاگ فایل‌های تمیز داشته باشید چون دیر یا زود خودتون مجبور به خوندنشون هستید.
جنگولرن
مطلبی در مورد لاگ از کانال @pyHints کانفیگ logging برای من همیشه اذیت کننده هست. بخش عمده‌ای از تسک‌های من مربوط میشه به Deep learning, ML engineering اما وجه دیگه کارم backend هست و software engineer برای همین خیلی کم پیش میاد نیاز داشته باشم ی لاگر با…
logger.py
657 B
ادامه مطلب لاگ از کانال @pyHints با یکم جابجایی

اینم فایل سورس (حتما بخونید و درک کنید اول)

کد بالا ربطی به django نداره، هرچند توی یک خط من برای مسیر فایل از django استفاده کردم. Logging مربوط به core python هست.
سخن بزرگان:
آیا کرم دارند؟

سوال بزرگان هم میتونه باشه.
چند ویدئو از علی بیگدلی در مورد Logging
با نثری روان 😁
به ترتیبی که گذاشتم ببینیدشون

اول- آشنایی با ماژول Logging:
https://www.aparat.com/v/j112si1
دوم- basicConfig در logging:
https://www.aparat.com/v/b370k16
سوم- ردگیری عملکرد در exception
https://www.aparat.com/v/f996xa2
چهارم- کلاس ها و توابع log
https://www.aparat.com/v/xpIK6
پنجم- استفاده از handlers
https://www.aparat.com/v/o5VwO


اینم لینک جلسه 17 سیدمحمد خشنوا:
https://www.tg-me.com/جنگولرن/com.djangolearn_ir/796
که در مورد اینا توش گفته:
-اهمیت لاگ‌ها
-مفاهیم پایه‌ای لاگینگ در پایتون
-لاگ‌های رنگی
-ذخیره لاگ‌ها در فایل
-سفارشی‌سازی لاگ‌ها
-اجرای برنامه با سطوح مختلف لاگ
-افزونه‌ها و کتابخانه‌های مختلف برای لاگینگ در پایتون
-معرفی و تمجید از سنتری

شورش رو در آوردم. میدونم🥸
2025/05/12 21:04:53
Back to Top
HTML Embed Code: