class ActionDispatch::SSL
Action Dispatch SSL
Этот миддлвеар добавляется в стек, когда config.force_ssl = true, и получает опции, установленные в config.ssl_options. Он выполняет три задачи для обеспечения безопасных HTTP-запросов:
-
Перенаправление TLS: Постоянно перенаправляет
http://запросы наhttps://с тем же хостом, путём и т. д. Включено по умолчанию. Измените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.