Spec-Zone.ru › Ruby on Rails 7.1

class ActionDispatch::SSL

Parent:
Object

Action Dispatch SSL

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

  1. Перенаправление 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 не будут помечены как безопасные для исключённых запросов.

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

  3. 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.

Spec-Zone.ru

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