Class: CspReportsController

Inherits:
ActionController::Metal
  • Object
show all
Defined in:
app/controllers/csp_reports_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/csp_reports_controller.rb', line 4

def create
  report_base = JSON.parse(request.body.read)
  if report_base.has_key? 'csp-report'
    report = report_base['csp-report']
    CspReport.create(
      blocked_uri: report['blocked-uri'].try(:downcase),
      disposition: report['disposition'].try(:downcase),
      document_uri: report['document-uri'],
      effective_directive: report['effective-directive'].try(:downcase),
      violated_directive: report['violated-directive'].try(:downcase),
      referrer: report['referrer'].try(:downcase),
      status_code: (report['status-code'].presence || 0).to_i,
      raw_report: report,
      raw_browser: request.headers['User-Agent']
    )
  end
  self.response_body = 'OK'
  self.status = 200
end