класс ActionDispatch::SSL
Этот промежуточный программный модуль добавляется в стек при config.force_ssl = true, и ему передаются параметры, установленные в config.ssl_options. Он выполняет три задачи для обеспечения безопасных HTTP-запросов:
-
Перенаправление TLS: Постоянно перенаправляет
http://запросы наhttps://с тем же хостом URL, путем и т. д. Включено по умолчанию. Изменитеconfig.ssl_optionsдля изменения целевого URL (например,redirect: { host: "secure.widgets.com", port: 8080 }), или установитеredirect: falseдля отключения этой функции.Запросы могут отказаться от перенаправления с помощью
exclude:config.ssl_options = { redirect: { exclude: -> request { /healthcheck/.match?(request.path) } } }Cookiesне будет помечен как защищённый для исключённых запросов. -
Защищённые файлы cookie: Устанавливает флаг
secureдля файлов cookie, чтобы сообщить браузерам, что их нельзя отправлять вместе сhttp://запросами. Включено по умолчанию. Установитеconfig.ssl_optionsсsecure_cookies: falseдля отключения этой функции. -
HTTP Strict Transport Security (HSTS): Сообщает браузеру, что этот сайт предназначен только для TLS и автоматически перенаправляет запросы без TLS. Включено по умолчанию. Настройте
config.ssl_optionsсhsts: falseдля отключения.Настройте
config.ssl_optionsсhsts: { ... }для настройки HSTS:-
expires: Сколько секунд эти настройки будут действовать. Минимальное значение, необходимое для попадания в предварительно загружаемые списки браузера, составляет 1 год. По умолчанию 2 года (рекомендуется). -
subdomains: Установите значениеtrueдля указания браузеру применять эти настройки ко всем поддоменам. Это защищает ваши файлы cookie от перехвата уязвимым сайтом на поддомене. По умолчаниюtrue. -
preload: Укажите, что этот сайт может быть включён в предварительно загружаемые списки HSTS в браузерах. HSTS защищает ваш сайт на каждом посещении, *кроме первого*, так как браузер ещё не видел ваш заголовок HSTS. Чтобы исправить этот недостаток, разработчики браузеров включают встроенный список сайтов, поддерживающих HSTS. Перейдите на hstspreload.org, чтобы добавить свой сайт в этот список. По умолчаниюfalse.
Для отключения HSTS недостаточно пропустить заголовок. Браузеры будут запоминать исходную директиву HSTS до её истечения. Вместо этого используйте заголовок, чтобы сообщить браузерам об немедленном истечении HSTS. Установка
hsts: false— это сокращение дляhsts: { expires: 0 }. -
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.