diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 54f47cf..7453ea7 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -1,25 +1,25 @@ # Be sure to restart your server when you modify this file. -# Define an application-wide content security policy. +# Baseline application-wide Content-Security-Policy, deployed in Report-Only +# mode: browsers evaluate the policy and report violations (once a report +# endpoint is wired up) but enforce nothing, so rendering cannot break. +# Tune the policy against observed violations, then flip +# `content_security_policy_report_only` off to enforce it. +# # See the Securing Rails Applications Guide for more information: # https://guides.rubyonrails.org/security.html#content-security-policy-header -# Rails.application.configure do -# config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" -# end -# -# # Generate session nonces for permitted importmap and inline scripts -# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } -# config.content_security_policy_nonce_directives = %w(script-src) -# -# # Report violations without enforcing the policy. -# # config.content_security_policy_report_only = true -# end +Rails.application.configure do + config.content_security_policy do |policy| + policy.default_src :self + policy.object_src :none + policy.base_uri :self + policy.frame_ancestors :self + policy.form_action :self + # Specify URI for violation reports once a report sink is available + # policy.report_uri "/csp-violation-report-endpoint" + end + + # Report violations without enforcing the policy. + config.content_security_policy_report_only = true +end