چگونه امنیت جنگو را تامین کنیم؟
سخن کوتاهی درباره امنیت جنگو
بارگیری و پذیرش مسئولیت امنیت جنگو (امنیت فایلهای جنگو) برنامه شما بر روی آزمایشکنندگان QA یا یک دفتر امنیت اطلاعات وسوسهانگیز است، اما تامین امنیت آن به عهده تمامی افراد است.
امنیت فایلهای جنگو یکی از مهمترین ویژگیهای جنگو بهحساب میآید که اگر به درستی امنیت آن تامین نشود و قفلهای مناسبی بر روی فایلهای جنگو گذاشته نشود، موجب بهرهبرداری هکرها از آن میگردد. در ادامه این نوشتار شما را بیشتر با امنیت جنگو و فایلهای آن آشنا خواهیم کرد پس همراه ما باشید.
امنیت جنگو
جنگو یک چارچوب وب بالغ و آزمایش شده با شهرت شایسته امنیت در بیش از ۱۵ سال گذشته است. با این وجود اینترنت همچنان مکان خطرناکی است و امنیت وب یک زمینه در حال پیشرفت است. مانند اکثر فریم ورکهای وب، هنگام ایجاد یک پروژه جدید، جنگو به طور پیش فرض از تنظیمات توسعه محلی استفاده میکند. وظیفه توسعهدهنده این است که هم به طور پیش فرض محلی و هم تنظیمات تولید سفارشی را به طور موثر مدیریت کند.
Django دارای یک چک لیست استقرار عالی است که میتواند قبل از استقرار در نسخه تولیدی وب سایت شما اجرا شود و همچنین میتواند در مورد امنیت جنگو و فایلهای آن اسناد فراوانی را ارائه کند. یکی از مواردی که همیشه باید آن را در نظر بگیرید این است که از نسخههای بروز و آپدیت شده جنگو استفاده کنید.
Django (جنگو) به طور معمول هر ۹ ماه یک بار نسخه آپدیت شده و بروزی را انتشار میدهد (۲٫۲، ۳٫۰، ۳٫۱ و …) همچنین در هر ماه نسخههای کوچکی را برای رفع اشکال نسخههای آپدیت شده در اختیار کاربران قرار میدهد.
به خاطر همین مورد همیشه سعی کنید وقت بگذارید و از نسخههای بروز جنگو استفاده کنید تا امنیت فایلها و امنیت جنگو همیشه در اولویت قرار گیرد.
از کدام نسخهی جنگو برای امنیت فایل (امنیت جنگو) استفاده کنیم؟
جنگو در حال حاضر از نسخههای متفاوتی استفاده میکند که شما ممکن است برای پروژه خود از نسخههای متفاوت آن بهرهمند شوید. به طور مثال آخرین نسخهای که از پایتون Python 2 استفاده میکرد در آغاز سال ۲۰۲۰ به ارائه خدمات خود پایان داد.
علاوه بر این موارد، انتخاب نسخه نهایی مشخص میکند که در پروژه شما کدام عامل آسیبپذیری بیشتری دارد و ممکن است ماهیت بقیه اجزای پروژه (امنیت فایل های جنگو) را به خطر بیاندازد. برای اینکه بتوانید آسیبپذیری پروژه خود را پیدا کنید بهتر است از Snyk استفاده کنید.
سرانجام، مهم است که شما برنامهای برای بروز نگه داشتن نسخه جنگو خود داشته باشید. به طور کلی بهتر است قبل از پایان پشتیبانی از نسخه فعلی خود، به یک نسخه پشتیبانی شده بلند مدت متوسل شوید و برنامهای برای انتقال به نسخه بعدی داشته باشید. به این ترتیب شما از پشتیبانی نگهدارنده بهرهمند میشوید، اما لازم نیست نسخه خود را به طور مداوم تغییر دهید.
استفاده از متغیرهای محلی برای امنیت جنگو
به عنوان یک نکته همیشه مطمئن شوید که دارید از اسناد و نسخههای صحیح استفاده میکنید. یک تنش اساسی بین تنظیمات در نظر گرفته شده برای توسعه محلی و تولید وجود دارد. توسعه محلی سرعت، گزارشات اشکال قوی و دسترسی به همه ویژگیها را اهدا میکند.
تولید به قفل کردن وب سایت و فایلهای جنگو، به حداقل رساندن دسترسی تا حد ممکن نیاز دارد. به طور پیش فرض، پروژههای جدید جنگو (امنیت جنگو) که با دستور startproject ایجاد شدهاند دارای تنظیمات توسعه محلی هستند. توسعهدهنده مسئول بروزرسانی آنها در تنظیمات تولید است.
این روزها، روش استاندارد برای جابجایی بین تنظیمات محلی و تنظیمات با متغیرهای محیطی است. به جای داشتن چندین فایل تنظیمات.پی (settings.py)، میتوان از یک فایل settings.py با متغیرهایی که بارگیری میشوند بسته به محیط: محلی یا تولیدی، استفاده کرد.
روشهای مختلفی برای پیادهسازی متغیرهای محیطی و بستههای مختلف شخص ثالث وجود دارد که میتواند به شما کمک کند. البته که روش که بسیار مورد توصیه قرار میگیرد استفاده از environs است که که دارای یک گزینه مخصوص Django (امنیت جنگو) است و تعدادی بسته اضافی را که به پیکربندی فایلهای جنگو اضافه میکند.
آشنایی با روشهای تامین امنیت جنگو
برای اینکه راحتتر بتوانیم فایلهای جنگو خود را در برابر نفوذهای متعدد بگیریم بهتر است از روشهای موثر و مفید استفاده کنیم که در اینجا میخواهیم به این روشها اشاره کنیم:
از SSL استفاده کنید
سایت خود را در پشت HTTPS مستقر کنید. اگر از HTTPS استفاده نمیکنید، ممکن است شخصی درحالی که در کافی شاپ، فرودگاه یا مکان عمومی دیگری هستید رمز عبور شما (یا کاربران) را جاسوسی کند. همیشه سعی کنید SSL فایلهای خود را فعال و بروز نگه دارید.
URL را تغییر دهید
URL پیش فرض مدیر را از / admin / به مورد دیگری تغییر دهید. دستورالعملها در اسناد جنگو وجود دارد، اما به طور خلاصه، مدیر عامل را در URL خود جایگزین کنید:
urlpatterns = [ path('my-special-admin-login/', admin.site.urls), ]
برای امنیت بیشتر فایلها میتوانید مدیریت فایلهای جنگو خود را به طور کامل در یک دامنه مخصوص و مطمئن قرار دهید.
از ‘django-admin-honeypot’ استفاده کنید
هنگامی که سایت سرپرست خود (فایل های جنگو) را به URL جدیدی منتقل کردید (یا حتی تصمیم به میزبانی آن در دامنه خود گرفتید)، کتابخانه django-admin-honeypot را در URL / admin / قدیمی خود نصب کنید با این کار شما تلاش هکرها برای دسترسی به فایلهای جنگو خود را تا جای ممکن بینتیجه کردهاید.
django-admin-honeypot یک صفحه ورود مدیر جعلی ایجاد میکند و هر زمان کسی بخواهد وارد URL / admin / قدیمی شما شود، مدیران سایت شما را از طریق ایمیل ارسال میکنند.
ایمیل تولید شده توسط django-admin-honeypot حاوی آدرس IP مهاجم خواهد بود، بنابراین برای امنیت بیشتر اگر تلاشهای ورود مکرر از همان آدرس IP را مشاهده کردید میتوانید با توجه به تخصص و مهارتهای خود از ورود آن مهاجم جلوگیری کنید.
استفاده از رمزهای ورود قوی و دشوار
متاسفانه بسیاری از کاربران از رمزهای عبور نامناسب یا بسیار آسان استفاده میکنند برای امنیت فایلهای جنگو شما با استفاده از نرم افزارهای مختلف میتوانید از ورود رمزهای ساده جلوگیری کنید و همچنین اطمینان حاصل کنید که رمزی ساده و نامناسب وارد سایت نشود.
که به نوبه خود امنیت دادههای آنها و دادههایی را که در سرپرست به آنها دسترسی دارند افزایش میدهد با فعال کردن اعتبار سنجی رمز عبور، به گذر واژههای قوی نیاز دارید اسناد جنگو مقدمه بسیار خوبی در مورد چگونگی فعال کردن اعتبارسنج رمزهای عبور با جنگو دارد.
اعتبارسنجان رمز عبور شخص ثالث مانند django-zxcvbn-password را بررسی کنید تا از ورود رمزهای نامناسب جلوگیری کنید و امنیت جنگو را افزایش دهید.
از احراز هویت دو عاملی (دو مرحلهای) استفاده کنید
احراز هویت دو عاملی (۲FA) زمانی است که برای احراز هویت کاربر برای سایت خود به رمزعبور و چیز دیگری احتیاج دارید. شما احتمالاً با برنامههایی آشنا هستید که به گذر واژه نیاز دارند و سپس قبل از اینکه اجازه ورود به سیستم را برای شما ارسال کنند، کد ورود به سیستم را برای شما ارسال میکنند. آن برنامهها از ۲FA استفاده میکنند.
به سه روش میتوانید ۲FA را در سایت خود فعال کنید:
- ۲FA با پیام کوتاه، جایی که شما یک کد ورود به سیستم را ارسال میکنید.
- ۲FA با برنامهای مانند Google Authenticator که برای هر سرویسی که در آن ثبت نام میکنید کدهای ورود به سیستم منحصر به فرد ایجاد میکند. برای راهاندازی این برنامهها، کاربران باید یک کد QR را در سایت شما اسکن کنند تا سایت شما را با برنامه خود ثبت کنند. سپس برنامه کد ورود به سیستم را ایجاد میکند که میتوانند با استفاده از آنها وارد سایت شما شوند.
- ۲FA با YubiKey امنترین راه برای فعال کردن ۲FA در سایت شما است. این روش مستلزم این است که کاربران شما یک دستگاه فیزیکی (هوشمند)، YubiKey داشته باشند که وقتی میخواهند وارد سیستم شوند، به پورت USB وصل شوند.
نکته: کتابخانه django-two-factor-auth میتواند به شما در فعال کردن هر یک از روشهای ۲FA کمک کند.
هرگز “DEBUG” را در تولید فایلهای جنگو اجرا نکنید
وقتی DEBUG در پرونده تنظیمات شما روی True تنظیم شود، خطاها با پیگیری کامل نمایش داده میشوند که احتمالاً حاوی اطلاعاتی هستند که نمیخواهید کاربران نهایی ببینند. همچنین ممکن است تنظیمات یا روشهای دیگری داشته باشید که فقط در حالت اشکالزدایی فعال باشند که میتواند خطری برای کاربران و دادههای آنها باشد.
نکته: برای جلوگیری از این امر، از پروندههای تنظیمات مختلف برای توسعه محلی و استقرار تولید استفاده کنید.
خطاها را بررسی کنید
این کار مختص Django Admin نیست، اما هنوز هم یک روش عالی برای امنیت برنامه شماست. خطاهای امنیتی را با استفاده از python manage.py –deploy تیک بزنید. اگر هنگام اجرای پروژه خود این دستور را به صورت محلی اجرا کنید، احتمالاً برخی هشدارها را مشاهده خواهید کرد که ربطی به تولید نرم افزار یا فایل جنگو ندارند.
همیشه به این مورد توجه داشته باشید که هر هشدار نشانه یک نوع نقص در سیستم است که باید سریعا به آن توجه کرد تا موجب مشکلات دیگری نشود.
پشتیبانی یا checkup از فایلهای جنگو
این مورد نیز نکته دیگری است که باز هم مختص admin نیست، اما هنوز هم روش خوبی است. پس از استقرار در یک سایت staging، وب سایت خود را از طریق Sasha’s Pony Checkup اجرا کنید. این سایت به شما نمره امنیتی و لیست مرتبی از کارهایی که باید برای بهبود آن امتیاز انجام دهید، میدهد.
این سایت امنیت جنگو و فایلهای آن را برای شما آزمایش میکند و همچنین روشهای دیگری برای محافظت از آنان در برابر آسیب پذیریهای خاص و انواع حملات به شما توصیه میکند.
نتیجهگیری
در آخر امیدواریم تمامی مطالبی که در این نوشتار امنیت جنگو برایتان ذکر کنیم کاملا واضح و روشن بوده باشند و شما توانسته باشید با روشهای متناسب و کاملا مطمئن از فایلهای جنگو خود محافظت کرده باشید.
موفق باشید 🙂