نکاتی در مورد امنیت بیشتر جنگو

django
tutorial

#1

همیشه بحث امنیت تو سایت یکی از چالش ها بوده و قصد دارم خلاصه از چند تا موردی که به ذهنم میرسه رو باهاتون به اشتراک بزارم


  • مسیر ادمین رو تغییر بدید
    در حالت بیشفرض در مسیر / admin ادمین قرار داره که میتونید به مسیر سفارشی خودتون تغییرش بدین
urlpatterns = [
    path('my-special-admin-login/', admin.site.urls),
]

  • استفاده از django-admin-honeypot

وقتی که مسیر ادمین جنگو رو عوض کردین با نصب کردن django-admin-honeypot میتونید یه صفحه جعلی از لوگین ادمین بسازید که وقتی کسی قصد وارد شدن داشت به شما از طریق ایمیل اطلاع بدهد و حتی در صورت مشاهده تکرار این عمل شما میتونید با بستن آی بی از دسترسی این فرد به سایتتون جلوگیری کنید


  • استفاده رمز عبور قویتر
    اکثر کاربران تو فضای اینترنت از رمز های آسای استفاده میکنند که باعث در خطر افتادن اطلاعات میشه با استفاده از django-zxcvbn-password میتونید کیفیت رمزتون رو بسنجید که از python-zxcvbnبرای جنگو بازنویسی شده مقاله جالبی دیگری در مورد این مورد هست بیشنهاد میکنم مطالعه کنید

  • نحوه ورود ۲ مرحله ای را فعال کنید
    ورود ۲ مرحله ای ریسک دسترسی افراد دیگر رو کمتر میکنه به عنوان مثال بعد از وارد کردن رمز به وارد کردن کد تاییدیه هم نیازه .

۳ راه برای ورود ۲ مرحله ای :
۱- ورود ۲ مرحله ای همراه با کد تاییدیه اس ام اس
۲- ورود ۲ مرحله ای با استفاده از Google Authenticator که برای هر ورود شما یک بارکد Qr اختصاصی میسازه و کاربر باید با اسکن کردن کد مجوز ورود رو بگیره
۳- ورود ۲ مرحله با فقل سخت افزاری مثلا با USB device
Yubikey

کتابخانه django-two-factor-auth به شما کمک میکنه تا ورود ۲ مرحله ای خوتون رو فعال کنید


  • از آخرین نسخه موجود استفاده کنید
    وقتی که دارم این مطلبو مینویسم جنگو ۲.۰.۲ آخرین نسخه موجوده . در مورد مدت بشتیبانی نسخه ها میتونید این صفحه سر بزنید

  • در حالت DEBUG سایت رو راه اندازی نهایی نکنید
    وقتی که DEBUG=True باشه تمامی اررور ها با مسیر مشخص میشن که از لحاظ امنیتی امکان ریسک وجود دارد . راه حل برای این قضیه استفاده کردن از چندین فایل تنظیمات است
    introduction to using multiple settings files.

  • چک کردن مشکلات
    درسته که در حالت DEBUG میتونیم به مشکلات بی ببریم ولی با دستور python manage.py check --deploy میتونید یه بررسی کامل تری داشته باشید
    نمونه :
?: (security.W002) You do not have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE, so your pages will not be served with an 'x-frame-options' header. Unless there is a good reason for your site to be served in a frame, you should consider enabling this header to help prevent clickjacking attacks.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
?: (security.W016) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE, but you have not set CSRF_COOKIE_SECURE to True. Using a secure-only CSRF cookie makes it more difficult for network traffic sniffers to steal the CSRF token.

System check identified 3 issues (0 silenced

سعی کردم مطلبیو به اشتراک بزارم حالا اگه کم و کسری و توضیحاتی هست که از قلم افتاده ممنون میشم بفرمایید اصلاح کنم


#2

استفاده از VPN و white-list کردن IP همون VPN هم کمک خوبیه برای امنیت چیزی که قرار نیست public باشه