Как ослабить политику Content Security Policy

Привет! Я регулярно делаю это, но с установками через Docker. Предполагая, что вы используете нашу стандартную установку Docker в продакшене, для приемочного тестирования вам следует использовать то же самое. Существует значительный разрыв между установками в среде разработки и Docker (конфигурация, версии gem и JS-пакетов и т. д.), который может обернуться головной болью при развертывании.

Установки Docker по умолчанию используют и принудительно применяют HTTPS. Если вы не хотите настраивать шаблон контейнера (что, как я обнаружил, имеет некоторую скрытую сложность), вы можете просто отключить принудительное использование HTTPS через другую настройку сайта.

Вот мой фрагмент кода для «смягчения безопасности в локальной установке Docker», который можно так же легко отменить перед переходом в продакшен:

SiteSetting.content_security_policy = false
SiteSetting.force_https = false

Затем всё сводится к тому, чтобы ваш браузер мог найти порт 80 на контейнере Docker по адресу http://uat.mysite.com — обратите внимание, что вы будете использовать http вместо https.

Для этого трюк с файлом /etc/hosts от @pfaffman — лучший вариант; подробности для каждой ОС здесь.