C8 asks you to leverage browser security features. That is not a control Report URI helps you with at the margin — it is the entire thing we do. Along the way we cover the input-handling backstop, component visibility and client-side logging that three of the other controls describe.
The list is deliberately not a catalogue of vulnerabilities. It describes things worth building in advance, on the assumption that some of your defences will eventually not hold: input validation that misses a case, a component that turns out to be compromised, an incident nobody notices because nothing was being recorded. Several of the controls exist specifically to make the browser do useful work when the layers behind it have already failed.
Input handling is the primary defence against injection and it is not perfect anywhere. A policy that refuses to execute unauthorised script means a missed case produces a blocked attempt and a report, rather than a working attack.
Your dependency manifest describes what you build with. It says nothing about the scripts a tag manager pulls in at runtime, or about what a vendor changed on their CDN this morning — and those execute on your pages just the same.
Monitoring built around your infrastructure cannot record what happened in a browser. If the attack executed on the client, the log that would have shown it was never written, because nothing on your side was involved.
Everything below is delivered by mechanisms already built into your visitors' browsers. Report URI is the endpoint that collects what they report and turns it into something you can act on and keep.
Content Security Policy, Permissions Policy, Cross-Origin Opener and Embedder Policy, Network Error Logging and the Reporting API are all browser-native controls that cost a response header each. We help you deploy them safely in report-only first, and collect what they report once they are live.
Learn more about Content Security Policy →Script Watch inventories every JavaScript dependency loading on your site and alerts on change. CSP Integrity fingerprints what actually executed, names the library and version, and flags known vulnerabilities against it. Together they cover the components your build system never sees.
Learn more about Script Watch →Every violation your security headers generate is captured, filtered and retained, with alerting by email or webhook. That gives you a record of what browsers refused on your behalf, over time, exportable — which is both the detection capability and the evidence that the detection existed.
Learn more about webhook alerts →One header. No code. Reports start arriving from your first visitor.
30-day free trial · One header · No code · Cancel anytime
These are the Proactive Controls our platform speaks to. OWASP is the authority on what each control asks for — this describes what we provide against them, not a reading of the list itself.
| Control | What we provide |
|---|---|
| C3 — Validate all Input & Handle Exceptions | A policy that refuses injected script when validation misses a case, and reports it |
| C6 — Keep your Components Secure | Continuous inventory of third-party scripts, with version identification and known-vulnerability flagging |
| C8 — Leverage Browser Security Features | CSP, Permissions Policy, COOP, COEP, NEL and the Reporting API, deployed report-only first |
| C9 — Implement Security Logging and Monitoring | Client-side violation capture, retention, filtering and alerting by email or webhook |
The remaining controls concern access control, cryptography, secure design, defaults, digital identity and server-side request forgery — work that sits in your application rather than in the browser.
Every control here is delivered by the browser. Nothing of ours executes on your pages, no traffic is routed through your application, and the reports describe real sessions — including authenticated areas and region-specific content that an external scan never reaches.
Report-only comes first. You reach a working policy by observing your own site, with nothing blocked, and enforce when the reports say it is safe.
Content-Security-Policy-Report-Only: default-src 'self';
report-uri https://your-subdomain.report-uri.com/r/d/csp/reportOnly
If you have no policy yet, the CSP Wizard will build one from your own reports and the CSP Builder will let you maintain it afterwards.
Browser security mechanisms and third-party script integrity recur across frameworks, because they address a category of risk everybody now recognises. The work described by C6, C8 and C9 is largely the same work ASVS 5.0.0 asks for, and the same work PCI DSS 4.0.1 requires on payment pages.
The evidence is reusable too, which is the practical case for collecting it continuously rather than reassembling it for each assessment.
The Proactive Controls describe secure development across an entire application. What we address is the browser-facing portion — four of the ten. The rest belongs to your application and your architecture, and we do not claim otherwise.
| We help with | Using |
|---|---|
| Browser security mechanisms | CSP, Permissions Policy and the reporting products |
| Component inventory and integrity | Script Watch and CSP Integrity |
| Client-side logging and alerting | Policy Watch for header integrity over time |
| Injection defence in depth | XSS Protection for the injection case in full |
Together, these form the client-side security visibility layer that sits between your CSP policy and your incident response process.