如何在 Rails 4 中提供 HSTS 支持

How can I provide HSTS support in Rails 4

在 Rails 5 中我们可以这样做: config.ssl_options = { hsts: { expires: 10.days } }

我发现一篇旧文章说我可以强制执行它

  before_filter :strict_transport_security
  def strict_transport_security
    if request.ssl?
      response.headers['Strict-Transport-Security'] = "max-age=31536000; includeSubDomains"
    end
  end

在这个文件中有一个HSTS方法,这是否意味着它在Rails 4.2中默认打开? https://github.com/rails/rails/blob/4-2-stable/actionpack/lib/action_dispatch/middleware/ssl.rb

Rails 5 添加了您可以在 ssl_options 中指定的更多选项,但是 rails 4 已经有了基本选项,包括 hsts: { expires: 10.days, subdomains: false },如您在代码中所见。

config.force_ssl = true
config.ssl_options = { hsts: { expires: 10.days, subdomains: false } }