آموزش جنگو Django | امنیت در جنگو
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
نکات امنیتی
جنگو بهصورت پیشفرض دارای ویژگیهای امنیتی قدرتمندی است، اما رعایت برخی نکات اضافی میتواند امنیت پروژه شما را افزایش دهد:
-
استفاده از
SECRET_KEYایمن:- کلید
SECRET_KEYدر فایلsettings.pyبرای امضاهای امنیتی و هشگذاری استفاده میشود. هرگز این کلید را در مخزن عمومی (مثل GitHub) قرار ندهید. میتوانید آن را در فایلهای محیطی (.env) ذخیره کنید.
- کلید
-
فعالسازی
DEBUG=Falseدر محیط تولید:- در حالت
DEBUG=True، جنگو جزئیات خطاها را نمایش میدهد که میتواند اطلاعات حساس را فاش کند. همیشه در محیط تولید این گزینه را غیرفعال کنید.
- در حالت
-
استفاده از HTTPS:
- برای جلوگیری از حملات مرد میانی (Man-in-the-Middle)، همیشه از HTTPS استفاده کنید. میتوانید با تنظیم
SECURE_SSL_REDIRECT = Trueدرsettings.py، تمام درخواستهای HTTP را به HTTPS هدایت کنید.
- برای جلوگیری از حملات مرد میانی (Man-in-the-Middle)، همیشه از HTTPS استفاده کنید. میتوانید با تنظیم
-
محدود کردن دسترسیها با
ALLOWED_HOSTS:- فهرست
ALLOWED_HOSTSدرsettings.pyمشخص میکند که سرورهای مجاز برای میزبانی پروژه کداماند. در محیط تولید، حتماً دامنههای معتبر را وارد کنید.
- فهرست
-
جلوگیری از حملات CSRF:
- جنگو بهصورت پیشفرض از محافظت CSRF استفاده میکند. اطمینان حاصل کنید که در تمام فرمهای POST از تگ
{% csrf_token %}استفاده میکنید.
- جنگو بهصورت پیشفرض از محافظت CSRF استفاده میکند. اطمینان حاصل کنید که در تمام فرمهای POST از تگ
-
جلوگیری از حملات XSS:
- برای جلوگیری از حملات XSS، همیشه از فیلترهای خودکار جنگو در قالبها استفاده کنید (مثلاً
{{ user_input|escape }}). همچنین از ارسال مستقیم دادههای کاربر به JavaScript خودداری کنید.
- برای جلوگیری از حملات XSS، همیشه از فیلترهای خودکار جنگو در قالبها استفاده کنید (مثلاً
-
مدیریت صحیح نشستها (Sessions):
- برای افزایش امنیت، میتوانید
SESSION_COOKIE_SECURE = TrueوSESSION_COOKIE_HTTPONLY = Trueرا درsettings.pyتنظیم کنید تا کوکیهای نشست فقط از طریق HTTPS ارسال شوند و از دسترسی JavaScript جلوگیری شود.
- برای افزایش امنیت، میتوانید
-
استفاده از کتابخانههای امنیتی:
- کتابخانههایی مانند
django-csp(Content Security Policy) وdjango-axes(برای محدود کردن تلاشهای لاگین ناموفق) میتوانند امنیت پروژه را بهبود بخشند.
- کتابخانههایی مانند
با رعایت این نکات، میتوانید امنیت برنامههای جنگو خود را بهطور چشمگیری افزایش دهید.
برای ثبت پرسش ابتدا در سایت وارد شوید.