class

ActionDispatch::ContentSecurityPolicy

v8.0.0 - Show latest stable - Superclass: Object

# Action Dispatch Content Security Policy

Configures the HTTP [Content-Security-Policy](developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) response header to help protect against XSS and injection attacks.

Example global policy:

Rails.application.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

Constants

DEFAULT_NONCE_DIRECTIVES = %w[script-src style-src].freeze

DIRECTIVES = {\nbase_uri: "base-uri",\nchild_src: "child-src",\nconnect_src: "connect-src",\ndefault_src: "default-src",\nfont_src: "font-src",\nform_action: "form-action",\nframe_ancestors: "frame-ancestors",\nframe_src: "frame-src",\nimg_src: "img-src",\nmanifest_src: "manifest-src",\nmedia_src: "media-src",\nobject_src: "object-src",\nprefetch_src: "prefetch-src",\nrequire_trusted_types_for: "require-trusted-types-for",\nscript_src: "script-src",\nscript_src_attr: "script-src-attr",\nscript_src_elem: "script-src-elem",\nstyle_src: "style-src",\nstyle_src_attr: "style-src-attr",\nstyle_src_elem: "style-src-elem",\ntrusted_types: "trusted-types",\nworker_src: "worker-src"\n}.freeze

MAPPINGS = {\nself: "'self'",\nunsafe_eval: "'unsafe-eval'",\nwasm_unsafe_eval: "'wasm-unsafe-eval'",\nunsafe_hashes: "'unsafe-hashes'",\nunsafe_inline: "'unsafe-inline'",\nnone: "'none'",\nhttp: "http:",\nhttps: "https:",\ndata: "data:",\nmediastream: "mediastream:",\nallow_duplicates: "'allow-duplicates'",\nblob: "blob:",\nfilesystem: "filesystem:",\nreport_sample: "'report-sample'",\nscript: "'script'",\nstrict_dynamic: "'strict-dynamic'",\nws: "ws:",\nwss: "wss:"\n}.freeze

Attributes

[R]directives

Files

  • actionpack/lib/action_dispatch/http/content_security_policy.rb