Spec-Zone.ru › Ruby on Rails 8.0

класс ActionDispatch::SSL

Родитель:
Object

Action Dispatch SSL

Этот посредник добавляется в стек, когда config.force_ssl = true, и получает опции, установленные в config.ssl_options. Он выполняет три задачи для обеспечения безопасных HTTP-запросов:

  1. Переадресация TLS: Постоянно перенаправляет http:// запросы на https:// с тем же хостом URL, путем и т. д. Включено по умолчанию. Изменить URL назначения можно, установив config.ssl_options.

    config.ssl_options = { redirect: { host: "secure.widgets.com", port: 8080 }`

    Или установите redirect: false для отключения переадресации.

    Запросы могут отказаться от переадресации с помощью exclude:

    config.ssl_options = { redirect: { exclude: -> request { request.path == "/up" } } }
    

    Cookies не будет помечен как безопасный для исключённых запросов.

    При проксировании через балансировщик нагрузки, который завершает SSL, переданный запрос будет отображаться как HTTP, а не HTTPS для приложения. Это делает переадресацию и безопасность cookie-файлов целевыми для HTTP, а не HTTPS. Чтобы заставить сервер предположить, что прокси уже завершил SSL, и что запрос действительно HTTPS, установите config.assume_ssl в true:

    config.assume_ssl = true
    
  2. Безопасные cookie-файлы: Устанавливает флаг secure для cookie-файлов, чтобы сообщить браузерам, что их нельзя отправлять вместе с http:// запросами. Включено по умолчанию. Отключить эту функцию можно, установив config.ssl_options с secure_cookies: false.

  3. HTTP Strict Transport Security (HSTS): Сообщает браузеру запомнить этот сайт как только TLS и автоматически перенаправлять запросы без TLS. Включено по умолчанию. Отключить можно, настроив config.ssl_options с hsts: false.

    Настройте HSTS, установив config.ssl_options с 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–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API