允许在Rails开发环境中使用不安全的脚本



在开发环境中,我想允许script-src unsafe-inline在Rails应用程序中。我试图使用heavens_door gem,生成系统测试。

在内容安全策略初始化器上定制内容安全策略。

它是不安全的,因为服务器是本地Rails服务器,但我如何配置我的Rails应用程序来允许它?

  • https://github.com/amatsuda/heavens_door/issues/26

你应该在单独加载的.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并相应地设置自定义脚本源,这样你就不会在生产中泄露你的内部开发url。

您也可以将:unsafe_inline添加到任何策略元素中,但您可能不应该这样做。显式列出源代码要比允许运行内联脚本安全得多,因为内联脚本会消除对XSS的保护。你可能想要接受:unsafe_inline的风险,但如果你没有办法改变第三方组件不使用内联Javascript。不幸的是,我不知道heavens_door,我不确定情况是否如此。

例如,您可以使用此工具根据最佳实践评估您的CSP。

感谢Gabor Lengyel的解决方案。总之,您只需要将这一行添加到ApplicationController

content_security_policy false

确保它没有被提交并推送到生产环境!

相关内容

  • 没有找到相关文章

最新更新