2022-01-01 13:38:12 +00:00
|
|
|
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
2021-06-01 12:20:20 +00:00
|
|
|
|
2019-07-04 11:16:55 +00:00
|
|
|
# Be sure to restart your server when you modify this file.
|
|
|
|
|
|
|
|
# Define an application-wide content security policy
|
|
|
|
# For further information see the following documentation
|
|
|
|
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-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
|
2021-06-23 11:35:27 +00:00
|
|
|
# # If you are using webpack-dev-server then specify webpack-dev-server host
|
|
|
|
# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development?
|
2019-07-04 11:16:55 +00:00
|
|
|
|
|
|
|
# # Specify URI for violation reports
|
|
|
|
# # policy.report_uri "/csp-violation-report-endpoint"
|
|
|
|
# end
|
|
|
|
|
2020-02-13 08:35:58 +00:00
|
|
|
Rails.application.config.content_security_policy do |policy|
|
|
|
|
base_uri = proc do
|
|
|
|
next if !Rails.env.production?
|
|
|
|
next if !Setting.get('system_init_done')
|
|
|
|
|
|
|
|
http_type = Setting.get('http_type')
|
|
|
|
fqdn = Setting.get('fqdn')
|
|
|
|
|
|
|
|
"#{http_type}://#{fqdn}"
|
|
|
|
end
|
|
|
|
|
|
|
|
policy.base_uri :self, base_uri
|
|
|
|
|
|
|
|
policy.default_src :self, :ws, :wss, 'https://log.zammad.com', 'https://images.zammad.com'
|
|
|
|
policy.font_src :self, :data
|
|
|
|
policy.img_src '*', :data
|
|
|
|
policy.object_src :none
|
2021-09-02 14:35:29 +00:00
|
|
|
policy.script_src :self, :unsafe_eval, :strict_dynamic
|
2020-02-13 08:35:58 +00:00
|
|
|
policy.style_src :self, :unsafe_inline
|
2020-03-06 08:27:42 +00:00
|
|
|
policy.frame_src 'www.youtube.com', 'player.vimeo.com'
|
2020-02-13 08:35:58 +00:00
|
|
|
end
|
|
|
|
|
2019-07-04 11:16:55 +00:00
|
|
|
# If you are using UJS then enable automatic nonce generation
|
2020-02-13 08:35:58 +00:00
|
|
|
Rails.application.config.content_security_policy_nonce_generator = ->(_request) { SecureRandom.base64(16) }
|
2019-07-04 11:16:55 +00:00
|
|
|
|
2021-06-23 11:35:27 +00:00
|
|
|
# Set the nonce only to specific directives
|
|
|
|
Rails.application.config.content_security_policy_nonce_directives = %w[script-src]
|
|
|
|
|
2019-07-04 11:16:55 +00:00
|
|
|
# Report CSP violations to a specified URI
|
|
|
|
# For further information see the following documentation:
|
|
|
|
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
|
|
|
|
# Rails.application.config.content_security_policy_report_only = true
|