<commit_before>Rails.application.config.content_security_policy do |policy|
  # En cas de non respect d'une des règles, faire un POST sur cette URL
  policy.report_uri "https://e30e0ed9c14194254481124271b34a72.report-uri.com/r/d/csp/reportOnly"
  # Whitelist image
  policy.img_src :self, "https://*.openstreetmap.org"
  # Whitelist JS: nous, sendinblue et matomo, et… miniprofiler :(
  if Rails.env.development?
    # https://github.com/MiniProfiler/rack-mini-profiler/issues/327
    policy.script_src :self, "https://sibautomation.com", "//stats.data.gouv.fr", :unsafe_eval, :unsafe_inline
  else
    policy.script_src :self, "https://sibautomation.com", "//stats.data.gouv.fr"
  end
  # Génération d'un nonce pour les balises script inline qu'on maitrise (Gon)
  Rails.application.config.content_security_policy_nonce_generator = -> _request { SecureRandom.base64(16) }

  # Pour les CSS, on a beaucoup de style inline et quelques balises <style>
  # c'est trop compliqué pour être rectifié immédiatement (et sans valeur ajoutée:
  # c'est hardcodé dans les vues, donc pas injectable).
  policy.style_src :self, :unsafe_inline
  # Pour tout le reste, par défaut on accepte uniquement ce qui vient de chez nous
  # et dans la notification on inclue la source de l'erreur
  policy.default_src :self, :data, :report_sample<commit_msg>update on the security policy headers<commit_after>Rails.application.config.content_security_policy do |policy|
  # En cas de non respect d'une des règles, faire un POST sur cette URL
  policy.report_uri "https://demarches-simplifiees.report-uri.com/r/d/csp/reportOnly"
  # Whitelist image
  policy.img_src :self, "*.openstreetmap.org", "static.demarches-simplifiees.fr", "*.cloud.ovh.net", "stats.data.gouv.fr"
  # Whitelist JS: nous, sendinblue et matomo
  # miniprofiler et nous avons quelques boutons inline :(
  policy.script_src :self, "*.sibautomation.com", "stats.data.gouv.fr", "*.sendinblue.com", :unsafe_eval, :unsafe_inline
  # Pour les CSS, on a beaucoup de style inline et quelques balises <style>
  # c'est trop compliqué pour être rectifié immédiatement (et sans valeur ajoutée:
  # c'est hardcodé dans les vues, donc pas injectable).
  policy.style_src :self, :unsafe_inline
  # Pour tout le reste, par défaut on accepte uniquement ce qui vient de chez nous
  # et dans la notification on inclue la source de l'erreur
  policy.default_src :self, :data, :report_sample
{'fraction_non_alphanumeric': 0.10256410256410256, 'fraction_numerical': 0.013234077750206782, 'mean_word_length': 4.599537037037037, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 6, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1879126', 'n_tokens_mistral': 858, 'n_tokens_neox': 817, 'n_words': 240}