发布于 2021-01-24 01:31:07
您应该在单独加载的.js文件中包含所有Javascript代码。然后,可以在初始化器(例如,如下所示的config/initializers/csp.rb )中向内容安全策略添加受信任的源:
my_custom_script_sources = ["https://kit.fontawesome.com", "http://localhost:3000"]
Rails.application.config.content_security_policy do |policy|
policy.script_src(:self, *my_custom_script_sources)
end当然,您可以检查Rails.env并相应地设置自定义脚本源,这样您就不会在生产中公开您的内部开发urls。
您也可以将:unsafe_inline添加到任何策略元素,但是您可能不应该。显式列出您的源代码比允许运行任何可以消除XSS保护的内联脚本安全得多。但是,如果您无法将第三方组件更改为不使用内联Javascript,您可能想要接受:unsafe_inline的风险。不幸的是,我不知道heavens_door,我不知道情况是否如此。
例如,您可以使用这个工具来根据最佳实践评估您的CSP。
发布于 2021-01-26 17:51:40
谢谢Gabor Lengyel的解决方案。总之,只需将这一行添加到ApplicationController中即可
content_security_policy false确保它没有被承诺和推动生产!
https://stackoverflow.com/questions/65799368
复制相似问题