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