Content-Security-Policy: default-src 'self' https://js-agent.newrelic.com https://bam.nr-data.net
它说,只需将https://js-agent.newrelic.com
和https://bam.nr-data.net
放在default-src
的内容安全政策中,我们希望在其中更加具体,而不仅仅是盲目地让其他所有内容退回到默认。
所以我们有以下内容,因为这似乎是座席所需的全部
# config/initializers/content_security_policy.rb
...
policy.script_src :self, 'bam.nr-data.net', 'js-agent.newrelic.com'
policy.connect_src :self, 'bam.nr-data.net'
...
但是,没有简单的方法可以将csp nonce
添加到::NewRelic::Agent.browser_timing_header
脚本中。我希望有一种方法可以让我只传递nonce
并让代理将nonce
插入这两个脚本标签,以便我们知道那些内联脚本是好的。
这是我当前的黑客,我想知道是否有更好的方法可以做到这一点。
# config/newrelic.yml
development:
browser_monitoring:
auto_instrument: false
# app/views/layouts/application.html.erb
<!DOCTYPE html>
<html dir="ltr">
<head>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= javascript_tag nonce: true do -%>
<%= :NewRelic::Agent.browser_timing_header.gsub!("<script>", "").gsub!("</script>", "") %>
<% end -%>
...
</head>
...