summaryrefslogtreecommitdiff
path: root/app/controllers/csp_reports_controller.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-18 16:30:31 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-18 16:30:31 +0200
commit0c6783816e0a7a8acad922296d3eb8cc454fb981 (patch)
tree54c59e86afa188de6429ff0e1f07d1b6e4f36350 /app/controllers/csp_reports_controller.rb
parent6b6e50909cc77de1797e88be5445c5b643b008a9 (diff)
Emit a report-only Content-Security-Policy with nonced inline scripts
- dark-mode restore now travels nonced, the admin constants likewise - AUTH_TOKEN deleted in favour of the csrf meta tag - new report collector at /csp_reports
Diffstat (limited to 'app/controllers/csp_reports_controller.rb')
-rw-r--r--app/controllers/csp_reports_controller.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/controllers/csp_reports_controller.rb b/app/controllers/csp_reports_controller.rb
new file mode 100644
index 0000000..08cbc98
--- /dev/null
+++ b/app/controllers/csp_reports_controller.rb
@@ -0,0 +1,10 @@
1class CspReportsController < ApplicationController
2 # Browsers POST application/csp-report with no CSRF token, no session.
3 skip_before_action :verify_authenticity_token
4
5 def create
6 report = request.body.read(8192)
7 Rails.logger.warn("CSP violation: #{report}") if report.present?
8 head :no_content
9 end
10end