我正在尝试在我的Rails应用程序返回的所有响应上设置'X-Frame-Options'标头。似乎此标头在404或500类型响应上设置而不是。如何将Rails配置为始终包含此标题?
似乎我需要挂钩到Rails以确保始终设置这些标头。
答案 0 :(得分:0)
我使用下面的中间件作为我的'exceptions_app'成功了。
class XSecurityHandler
def initialize(app)
@app = app
end
def call(env)
_status, headers, response = @app.call(env)
headers['X-Frame-Options'] = "SAMEORIGIN"
headers['X-Content-Type-Options'] = "nosniff"
[status(env), headers, response]
end
private
def status(env)
path = env["ORIGINAL_FULLPATH"]
if path == "/404"
404
elsif path == "/422"
422
else
500
end
end
end
答案 1 :(得分:-1)
在 config / application.rb 中设置默认标题:
config.action_dispatch.default_headers['X-Frame-Options'] = 'SAMEORIGIN'
但它不会工作,如果你配置了反向代理(如nginx)来提供不存在的静态资产(404),但我想你知道这一点:)