如何禁用Rails项目的默认内容安全策略?



我正在使用gemsecure-headers来处理我的Rails项目中的CSP,但默认情况下我得到了这个头:Content-Security-Policy: default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline'与CSP- report - olny头一起,我想禁用它。

我已经尝试在我的config/application.rb中写这样的东西,但它不起作用。

config.action_dispatch.default_headers['Content-Security-Policy'] = ''
config.action_dispatch.default_headers.delete('Content-Security-Policy')

我的config/initializers/secure_headers.rb文件:

SecureHeaders::Configuration.default do |config|
config.csp_report_only = {
default_src: %w['self' fonts.gstatic.com],
img_src: %w['self'],
font_src: %w['self' fonts.gstatic.com],
script_src: %w['self'],
connect_src: %w['self'],
report_uri: %w[/my-route]
}
end

有人经历过吗?

Ruby: 2.6.3

Rails: 5.1.2

我想禁用默认的CSP标头,只使用Content-Security-Policy-Report-Only

根据gem的文档,如果你没有设置任何设置或使用SecureHeaders::OPT_OUT来忽略,它会默认拾取。所以解决办法很简单。

config.csp = SecureHeaders::OPT_OUT

最新更新