#جنگو_و_فایلهای_استاتیک
فرقی نداره شما فایل استاتیک رو توی کدوم اپ بذارین، توی یکیش باشه برای بقیه هم قابل دسترسی هست!
همین طور برای تمپلیتها همین شکلیه و تمپلیت داخل یه پوشهی تمپلیت برای بقیه اپ هم قابل دسترسی هست.
میتونید البته بیان و یه پوشهی خاص رو به عنوان محل فایلهای استاتیک قرار بدین و باید توی ستینگز به صورت
STATICFILES_DRIS = [ BASE_DIR / 'path/to/static' ]
آدرس دهیش کنید. دقت کنید که STATICFILES_DRIS با یه S تموم میشه و یه لیست هست!.
دستور collectstatics برای زمانی که میخواین پروژه رو دپلوی کنید کاربرد داره و برای اینکه:
هر اپ توی جنگو چه اپهایی مثل auth, admin و ... و چه اپهایی که شما میسازین برای خودشون استاتیک فایلهایی دارن که هرکدوم تو آدرس خاصی هستن!.
در زمان دپلوی کردن جنگو وظیفهی لودکردن فایلهای استاتیک رو به وب-سرور واگذار میکنه و وبسرور هم به یه دایرکتوری خاص باید اشاره کنه برای سرو کردن فایلهای استاتیک، برای همین دستور collectstatics میاد از همهی اپها فایلهای استاتیک رو جمع میکنه و در دایرکتوریای که شما با STATIC_ROOT تعریف میکنید قرار میده.
آیدی کانال👇:
programming_tricks
فرقی نداره شما فایل استاتیک رو توی کدوم اپ بذارین، توی یکیش باشه برای بقیه هم قابل دسترسی هست!
همین طور برای تمپلیتها همین شکلیه و تمپلیت داخل یه پوشهی تمپلیت برای بقیه اپ هم قابل دسترسی هست.
میتونید البته بیان و یه پوشهی خاص رو به عنوان محل فایلهای استاتیک قرار بدین و باید توی ستینگز به صورت
STATICFILES_DRIS = [ BASE_DIR / 'path/to/static' ]
آدرس دهیش کنید. دقت کنید که STATICFILES_DRIS با یه S تموم میشه و یه لیست هست!.
دستور collectstatics برای زمانی که میخواین پروژه رو دپلوی کنید کاربرد داره و برای اینکه:
هر اپ توی جنگو چه اپهایی مثل auth, admin و ... و چه اپهایی که شما میسازین برای خودشون استاتیک فایلهایی دارن که هرکدوم تو آدرس خاصی هستن!.
در زمان دپلوی کردن جنگو وظیفهی لودکردن فایلهای استاتیک رو به وب-سرور واگذار میکنه و وبسرور هم به یه دایرکتوری خاص باید اشاره کنه برای سرو کردن فایلهای استاتیک، برای همین دستور collectstatics میاد از همهی اپها فایلهای استاتیک رو جمع میکنه و در دایرکتوریای که شما با STATIC_ROOT تعریف میکنید قرار میده.
آیدی کانال👇:
programming_tricks
Forwarded from Free Knowledge | دانش آزاد (Dr.M0h4MM4d LTS version)
امنیت در جنگو؟؟
جنگو به صورت پیش فرض مکانیزم های امنیتی خود را دارد و از همه اسیب پذیری ها جلوگیری میکند، مانند: xss, csrf, sqli, host/header validation و ...
یک خلاصه ای در باره اینکه چگونه از هر کدوم جلوگیری میکند به شما میدم
XSS:
جنگو برای جلوگیری از xss از escape especific characters استفاده میکند که موجب میشود تگ های html و کاراکتر های خاص html شکل دیگری بگیرند بطوری که اجرا نشوند
CSRF:
جنگو یک میدلویر برای جلوگیری از این اسیب پذیری ارائه میدهد که در رکوئست های پوست referer کاربر را میگیرد تا ببیند برای همین هاست یا origin هست یا خیر اگر بود مشکلی ندارد اگر نبود ارور csrf میدهد.
SQLi:
جنگو یک orm به ما ارائه میدهد که این orm از بد کوئری ها جلوگیری میکند و جلوی sqli را تا حد امکان میگیرد، ولی وقتی شما از تابع raw استفاده کنید مستقیم باید دستور sql وارد کنید و پروتکشنی درکار نیست، باید مراقب باشید.
Host/Header validation:
جنگو در settings.py یک لیست ALLOWED_HOSTA به ما ارائه میدهد که در آن باید هاست های شناخته شده ی مان را قرار دهیم، نظیر 127.0.0.1 و دامین سایت، این مکانیزم امنیتی از هاست های فیک در مواقع مختلف جلوگیری میکند.
تا اینجا که میبینیم جنگو وظیفه ی خودشو خوب انجام داده پس وظیفه ما چیست؟
1-هیچوقت سکرت کی موجود در settings.py را عمومی نکنید.
2-هیچوقت در رکوئست های POST از csrf_exempt استفاده نکنید.
3-هیچوقت در فرم های کاربران از فیلتر safe استفاده نکنید
4-هیچوقت اطلاعات ایمیل، دیتابیس، api هایی که در پروژتون استفاده میکنید رو در فایل settings.py قرار ندید و داخل .env یا متغیر های محیطی قرار بدید.
5-از ادیتور هایی مانند ckeditor برای کاربران عادی استفاده نکنید زیرا برای نشون دادن محتوا مجبورید فیلتر safe استفاده کنید و موجب رخ دادن xss و html injection میشود.
#جنگو
#پایتون
#امنیت
@FreeKnowledgeOfficial
جنگو به صورت پیش فرض مکانیزم های امنیتی خود را دارد و از همه اسیب پذیری ها جلوگیری میکند، مانند: xss, csrf, sqli, host/header validation و ...
یک خلاصه ای در باره اینکه چگونه از هر کدوم جلوگیری میکند به شما میدم
XSS:
جنگو برای جلوگیری از xss از escape especific characters استفاده میکند که موجب میشود تگ های html و کاراکتر های خاص html شکل دیگری بگیرند بطوری که اجرا نشوند
CSRF:
جنگو یک میدلویر برای جلوگیری از این اسیب پذیری ارائه میدهد که در رکوئست های پوست referer کاربر را میگیرد تا ببیند برای همین هاست یا origin هست یا خیر اگر بود مشکلی ندارد اگر نبود ارور csrf میدهد.
SQLi:
جنگو یک orm به ما ارائه میدهد که این orm از بد کوئری ها جلوگیری میکند و جلوی sqli را تا حد امکان میگیرد، ولی وقتی شما از تابع raw استفاده کنید مستقیم باید دستور sql وارد کنید و پروتکشنی درکار نیست، باید مراقب باشید.
Host/Header validation:
جنگو در settings.py یک لیست ALLOWED_HOSTA به ما ارائه میدهد که در آن باید هاست های شناخته شده ی مان را قرار دهیم، نظیر 127.0.0.1 و دامین سایت، این مکانیزم امنیتی از هاست های فیک در مواقع مختلف جلوگیری میکند.
تا اینجا که میبینیم جنگو وظیفه ی خودشو خوب انجام داده پس وظیفه ما چیست؟
1-هیچوقت سکرت کی موجود در settings.py را عمومی نکنید.
2-هیچوقت در رکوئست های POST از csrf_exempt استفاده نکنید.
3-هیچوقت در فرم های کاربران از فیلتر safe استفاده نکنید
4-هیچوقت اطلاعات ایمیل، دیتابیس، api هایی که در پروژتون استفاده میکنید رو در فایل settings.py قرار ندید و داخل .env یا متغیر های محیطی قرار بدید.
5-از ادیتور هایی مانند ckeditor برای کاربران عادی استفاده نکنید زیرا برای نشون دادن محتوا مجبورید فیلتر safe استفاده کنید و موجب رخ دادن xss و html injection میشود.
#جنگو
#پایتون
#امنیت
@FreeKnowledgeOfficial