Политика безопасности содержимого: Не удалось разобрать недопустимый хост http://localhost/static/css.

Я использую Django с Nginx. Моя среда dev зеркально отражает мою среду prod. В разработке я использую Nginx для доступа к Django в локальном dev (используя docker-compose). Сейчас я работаю над тем, чтобы сделать свой сайт более надежным с точки зрения безопасности согласно Mozilla Observatory. Сейчас мой сайт на четверку. Главное, над чем я сейчас работаю, это настройка политики безопасности содержимого (CSP) для моего сайта. Я не только хочу довести свой сайт до уровня A из-за геймификации, я также хочу избежать XSS-атак.

После некоторых поисков я нашел Django CSP, который выглядит отлично. Я установил его, добавил промежуточное ПО, а затем добавил некоторую конфигурацию CSP в моем settings.py следующим образом:

CSP_DEFAULT_SRC = ("'none'")

CSP_FONT_SRC = ("https://fonts.gstatic.com")

CSP_IMG_SRC = ("'self'", "https://www.google-analytics.com")

CSP_SCRIPT_SRC = (
    "'self'",
    "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js",
    "https://code.jquery.com/jquery-3.2.1.slim.min.js",
    "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js",
    "https://www.google-analytics.com/analytics.js",
    "https://www.googletagmanager.com/gtag/js",
    "https://www.googletagmanager.com/gtm.js;",
)
CSP_STYLE_SRC = (
    "'self'",
    "https://fonts.googleapis.com/",
    "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/",
)

Я запускаю свой сайт в локальной разработке и вижу это сообщение об ошибке в Firefox dev tools:

Политика безопасности контента: Couldn't parse invalid host 'http://localhost/static/css/

Почему localhost недействителен? Дело в том, что CSP на самом деле не работают в разработке? Я бы предпочел не "тестировать свой CSP-код вживую" в production, если это не нужно. Есть ли обходной путь для этого? Я немного поискал и ничего не нашел. Этот вопрос имеет точное сообщение об ошибке, но, похоже, он больше связан с потенциальным вредоносным ПО в расширениях браузера. Я предполагаю, что есть дополнительные настройки, которые я могу подправить, чтобы заставить CSP распознавать 'localhost' как действительный, но я не знаю, где искать дальше. Любая помощь будет принята с благодарностью! Спасибо.

Вернуться на верх