На основе https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/compatibility-requirements-new-relic-browser
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
для Content-Security-Policy, в которой мы хотим быть более конкретными, а непросто вслепую, чтобы все остальное вернулось к значениям по умолчанию.
Итак, у нас есть следующее, так как, кажется, все, что нужно агенту
# 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
и заставить агента вставить эти 2 тега сценария с нашим 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>
...