Рубрики
Без рубрики

Взломать сайты Django

Django Docs предлагает SecurityMiddleware размещена рядом с верхней частью настроек промежуточного программного обеспечения для хороших … Помечено Django, WebDev, Python, Безопасность.

Django Docs предлагает SecurityMiddleware находится рядом с верхом вашего Промежуточное программное обеспечение Настройки по причинам.

Готов к проблеме безопасности Django? Играть наш Задача безопасности Django .

X-Content-Type-options

SecurityMiddleware Устанавливает . X-Content-Type-options Заголовок к Nosniff Для предотвращения хакеров обмануть ваш веб-сайт в выполнении вредоносного файла JavaScript, который они загружены.

Этот заголовок указывает на браузеру, что типы MIME, рекламируемые в заголовках типа содержимого, не должны быть изменены (путем «нюхает» содержимого). Функция нюхания – это браузер, который будет полезен, когда разработчик или ошибка сервера неправильно разработаны Content-Type Отказ Если браузер уважал неправильный тип MIME, то файл JavaScript, CSS или Image не будет работать, и сайт сломается. Очень полезная особенность. Но это можно злоупотребиться, поскольку следующие простое доказательство понятия показывает:

# 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("")
        del response['Content-Type']
        return response

Результат при навигации на Главная страница Показывает «хак» работал:

Это простые доказательства концепции, смоделировали следующую сложную ситуацию:

  • Плохой актер загрузил HTML, содержащий JavaScript (может быть, притворяется файлом изображения).
  • Файл был подан вашим сайтом, но не устанавливает тип MIME в заголовке типа содержимого
  • Браузер выделил тип MIME на основе содержимого
  • Браузер выполнил JavaScript

Это было бы избежать, если мы 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-защита

SecurityMiddleware Устанавливает . XSSS-Protection Заголовок к 1; Когда Secure_browser_xss_filter это Правда Чтобы включить встроенную защиту браузера XSS.

Эта защита XSS была в основном заменена CSP Отказ Старые браузеры все еще поддерживают эту функцию, но многие браузеры удалили эту функцию. Пользователи со старыми браузерами все еще важны для удовлетворения, потому что безопасность вашего сайта не может предположить, что все выполняют последнюю версию Chrome.

Без SecurityMiddleware и Secure_browser_xss_filter Тогда сайт не получит выгоду от защиты от Многие возможные XSS атаки Отказ

Политика референта

SecurityMiddleware Устанавливает заголовок политики релей на основе Secure_referrer_policy , который влияет на конфиденциальность пользователя И является вектором атаки для плохих актеров, направленных на Dupe пользователей, думая, что они все еще на вашем сайте.

Заголовок списков можно злоупотреблять целевой веб-сайтом: возможно, секреты на вашем сайте URL утечка. Более просино, может быть, плохой актер может добавить ссылку на свой веб-сайт. Затем цель затем прочитает заголовок списка и стиль их веб-сайта, чтобы выглядеть как ваш сайт. Пользователь, не обращая внимания, может подумать, что они все еще на вашем сайте, потому что:

  • Ваш сайт связан с ним
  • Похоже, ваш сайт

Таким образом, пользователь может затем вводить учетные данные и личные данные на сайте плохого актера.

Это может быть предотвращено, не подвергая заголовозу от списка по настройкам Secure_referrer_policy , который затем обрабатывается SecurityMiddleware .

Clickjing

См. Взлом веб-сайтов Django Часть 2: Clickjaning

Пересекать запрос на сайт подделка

См. Хакеты веб-сайтов Django Часть 3: CSRF

SSL перенаправить

SecurityMiddleware может перенаправлять HTTP-соединения к HTTPS, если Secure_ssl_redirect установлен на Правда Отказ

Если вы не перенаправляете HTTP https, то пароли и личная информация будут транспортироваться на открытом тексте, а A Человек в середине мог прочитать их.

См. Взлом веб-сайтов Django Часть 4: Человек посередине

Есть ли у вашего сайта уязвимости безопасности?

Со временем это легко для уязвимостей безопасности и технологического долга, чтобы проскользнуть в вашу кодовую базу. Я могу проверить это для вас в django.doctor или может Просмотрите свой GitHUB PRS :

Или попробуйте Рефакторы Django Challenges Отказ

Оригинал: “https://dev.to/djangodoctor/hacking-django-websites-30f”