класс ActionDispatch::SSL
Action Dispatch 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не будут помечены как безопасные для исключённых запросов. -
Безопасные куки: Устанавливает флаг
secureдля куки, чтобы сообщить браузерам, что их нельзя отправлять вместе с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, чтобы сообщить браузеру применять эти настройки ко всем дочерним доменам. Это защищает ваши куки от перехвата уязвимым сайтом на дочернем домене. По умолчаниюtrue. -
preload: Укажите, что этот сайт может быть включен в предварительно загруженные списки HSTS в браузерах. HSTS защищает ваш сайт на каждом посещении, кроме первого, так как браузер ещё не видел вашего заголовка HSTS. Чтобы решить эту проблему, поставщики браузеров включают встроенный список сайтов, поддерживающих HSTS. Перейдите на hstspreload.org, чтобы добавить свой сайт в список. По умолчаниюfalse.
Для отключения HSTS, пропуска заголовка недостаточно. Браузеры будут помнить исходную директиву HSTS до её истечения. Вместо этого используйте заголовок, чтобы сообщить браузерам об немедленном истечении HSTS. Установка
hsts: false— это сокращение дляhsts: { expires: 0 }. -
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.