همیشه بحث امنیت تو سایت یکی از چالش ها بوده و قصد دارم خلاصه از چند تا موردی که به ذهنم میرسه رو باهاتون به اشتراک بزارم
- استفاده از SSL
سایتتون رو روی HTTPS راه اندازی کنید .
مستندات جنگو در موردSSL
- مسیر ادمین رو تغییر بدید
در حالت بیشفرض در مسیر / 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
سعی کردم مطلبیو به اشتراک بزارم حالا اگه کم و کسری و توضیحاتی هست که از قلم افتاده ممنون میشم بفرمایید اصلاح کنم