【发布时间】:2018-10-25 21:57:45
【问题描述】:
我正在为我们的 Rails 5.2 应用程序配置内容安全策略。我需要在我们的 CSP 中将一些域列入白名单。我想将域列表放在其他位置,以便在应用程序的其他位置引用它们,然后从该列表以编程方式生成 CSP 标头。
看看source code for the Content Security Policy configuration mechanisms in Rails 5,好像有一些神奇的元编程正在进行,所以我不清楚如何完成我需要做的事情。看起来我需要调用来设置标题的函数可能对它们想要被调用的方式很挑剔。特别是,我不清楚我是否可以向它们传递数组或安全地多次调用它们,或者它们是否做了一些元编程魔法,只有当域作为单独的函数参数传入时才有效。
我可以像这样将一个数组传递给我想要设置的标题吗?
whitelisted_domains = ['https://example.com', 'self']
Rails.application.configure do
config.content_security_policy do |csp|
csp.child_src whitelisted_domains
end
end
或者我可以像这样多次调用同一个函数吗?
whitelisted_domains = ['https://example.com', 'self']
Rails.application.configure do
config.content_security_policy do |csp|
whitelisted_domains.each {|domain| csp.child_src domain}
end
end
如果这些都不起作用,那么完成我想做的事情的最佳方法是什么?
【问题讨论】:
标签: ruby ruby-on-rails-5 content-security-policy