صفحه اصلی >> بلاگ >> هک کردن وب سایت های جنگو

هک کردن وب سایت های جنگو

دسته:django تاریخ انتشار: 6 فوریه 2021 ایمان رضایی

اسناد جنگو نشان می دهد SecurityMiddleware در نزدیکی بالای تنظیمات MIDWARE شما قرار گرفته است: این مجموعه مجموعه ای از بررسی ها و بررسی های امنیتی را انجام می دهد که در غیر این صورت وب سایت شما به سادگی هک می شود.

 

X-Content-Type-Options

SecurityMiddleware   هدر X-Content-Type-Options  را به nosniff  تنظیم می کند تا از اجرای یک فایل مخرب جاوااسکریپت که هکرها در وب سایت شما بارگذاری کرده اند ، جلوگیری کند.

این هدر به مرورگر نشان می دهد که انواع MIME تبلیغ شده در هدرهای نوع محتوا نباید تغییر کند (با "بو کشیدن" محتوا). هنگامی که یک توسعه دهنده یا پیکربندی اشتباه سرور ، Content-Type را اشتباه شناسایی کرده است ، ویژگی sniffing مفید است. اگر مرورگر به یک نوع MIME نادرست احترام بگذارد ، یک پرونده جاوا اسکریپت ، css یا تصویر کار نمی کند و وب سایت خراب می شود. ویژگی بسیار مفید همانطور که اثبات ساده مفهوم زیر نشان می دهد ، می توان از آن سواستفاده کرد.

 

# settings.py
MIDDLEWARE = [
# "django.middleware.security.SecurityMiddleware",
"django.middleware.common.CommonMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
...
]

SECURE_CONTENT_TYPE_NOSNIFF = False # pre-Django 3.0 it was False by default. Post 3.0 it's True

# views.py
class HomePage(View):
def get(self, *args, **kwargs):
# simulate a misconfgured server that returns a response that has no content type
response = HttpResponse("<script>alert('hello world')</script>")
del response['Content-Type']
return response

 

نتیجه هنگام رفتن به صفحه اصلی نشان می دهد که "هک" کار کرده است:

 

این اثبات ساده مفهوم ، وضعیت پیچیده تر زیر را شبیه سازی می کند:

  • یک هکر، HTML حاوی جاوااسکریپت را بارگذاری کرد (مثلا وانمود کند که یک فایل تصویری است).
  • این فایل توسط وب سایت شما ارائه شده است اما نوع MIME را در هدر Content-Type تنظیم نمی کند.
  • مرورگر بر اساس محتوا نوع MIME را استنباط می کند
  • مرورگر جاوااسکریپت را اجرا کرد

اگر SecurityMiddleware  موجود باشد و ویژگی nosniff  فعال باشد ، از این امر جلوگیری می شود:

 

# settings.py
MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware" ,
    "django.middleware.common.CommonMiddleware" ,
    "django.contrib.sessions.middleware.SessionMiddleware" ,
    ...
] SECURE_CONTENT_TYPE_NOSNIFF = True

 

 

سپس مرورگر تحت تاثیر این ترفند قرار نمی گیرد:

 

X-XSS-Protection

SecurityMiddleware  عنوان X-XSS-Protection  را روی 1; mode=block قرار می دهد وقتی  SECURE_BROWSER_XSS_FILTER  برابر True  است تا حفاظت XSS داخلی مرورگر را فعال کند.

این محافظت از XSS در اکثر مرورگرها توسط CSP جایگزین شده است. مرورگرهای قدیمی هنوز از این ویژگی پشتیبانی می کنند ، اما بسیاری از مرورگرها این ویژگی را حذف کرده اند. کاربرانی که از مرورگرهای قدیمی تر برخوردار هستند همچنان برای آنها مهم هستند زیرا امنیت وب سایت شما نمی تواند فرض کند همه از آخرین نسخه Chrome استفاده می کنند.

بدون SecurityMiddleware  و SECURE_BROWSER_XSS_FILTER  ، وب سایت مزیت محافظت در برابر بسیاری از حملات احتمالی XSS را نخواهد داشت.

 

Referrer Policy

SecurityMiddleware  هدر referer policy را بر اساس SECURE_REFERRER_POLICY,  تنظیم می کند ، که بر حریم خصوصی کاربر تأثیر می گذارد و یک فرصت برای هکرها است که قصد دارند کاربران را مجبور کنند فکر کنند هنوز در وب سایت شما هستند.

وب سایت هدف می تواند از هدر referer سواستفاده کند: شاید اسرار موجود در URL وب سایت شما به بیرون درز کند. پیچیده تر ، شاید یک هکر بتواند پیوندی به وب سایت خود اضافه کند. سپس هدف می تواند هدر مراجعه کننده را بخواند و به وب سایت خود استایل دهد تا مانند وب سایت شما باشد. کاربری که توجه نمی کند ممکن است فکر کند که هنوز در وب سایت شماست زیرا:

  • وب سایت شما به آن پیوند داده شده است
  • مشابه وب سایت شما به نظر می رسد

بنابراین کاربر ممکن است مدارک و اطلاعات شخصی را در وب سایت هکر وارد کند.

با عدم در معرض قرار دادن هدر referer توسط تنظیمات SECURE_REFERRER_POLICY ، که سپس توسط SecurityMiddleware کنترل می شود ، می توان از این امر جلوگیری کرد.

 

SSL Redirect

اگر SECURE_SSL_REDIRECT  روی True تنظیم شود ، SecurityMiddleware می تواند پروتکل HTTP را به HTTPS هدایت کند.

اگر HTTP را به HTTPS هدایت نکنید ، گذرواژه ها و اطلاعات شخصی از طریق متن ساده منتقل می شوند و هر فردی در هنگام انتقال می تواند آنها را بخواند.


n0
n258

برای ثبت نظر باید وارد سایت شوید یا ثبت نام نمایید.


نظر شما با موفقیت در سیستم ثبت گردید.