Spec-Zone.ru › Ruby on Rails 8.1

класс ActionDispatch::SSL

Родительский класс:
Object

Action Dispatch SSL

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

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

    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, чтобы отключить эту функцию.

    Задайте config.ssl_options с помощью hsts: { ... }, чтобы настроить 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