Passkeys secure authentication, but they don't protect what happens in the browser after login. Report URI shows you what happens in the browser after authentication.
Trusted by Global Infrastructure Teams
Passkeys don't protect what happens in the browser after a user logs in. That's where session hijacking, transaction manipulation, and client-side script attacks still happen.
XSS can steal or ride a passkey-authenticated session. Even with HttpOnly cookies, injected scripts can perform actions as the authenticated user without ever touching the passkey itself.
Injected scripts alter transaction parameters in flight — recipients, amounts, authorization scopes — while the UI shows the user what they expected to approve. The passkey signs a transaction the user didn't intend.
Attackers can trick authenticated users into registering an attacker-controlled passkey on their own account. The passkey is legitimately registered, bound to the attacker's authenticator, and grants persistent access.
Report URI captures what actually happens in the browser after login, giving you visibility into session behaviour, script execution, and data movement that passkeys don't cover.
Catch XSS attempts before they succeed and tune your policy based on what's actually happening in real browsers — not what you think should happen. Every blocked script, every violation, every attempted injection, logged and searchable.
Learn more about CSP Reporting →Get notified the moment a script changes, moves, or starts behaving differently. Unexpected script modifications in authenticated sessions are one of the most reliable indicators of a client-side attack in progress.
Learn more about Script Watch →Session tokens, form data, and transaction parameters being exfiltrated post-authentication are visible here. When an attacker is riding the session, the browser tells you — if you're listening.
Learn more about Data Watch →Report URI is the visibility layer for what happens in the browser after authentication. It shows when scripts execute, when behaviour changes, and when data moves in ways it shouldn't.
It doesn't replace authentication, secure coding, or server-side protections; it makes visible what happens after those controls have done their job.
It's the layer that shows when something behaves unexpectedly, before it becomes a larger issue.
| Pairs with | Doesn't replace |
|---|---|
| Your WAF | Penetration testing |
| Your SIEM | Secure code review |
| Your SOC | Framework-level XSS defence |
One line of config. No credit card required to start.
One line of config · No agent · No proxy · Works alongside your existing stack
Report URI works through the browser's built-in Reporting API. Add your reporting endpoint to your Content-Security-Policy header. That's the entire deployment. No agents installed on your servers. No proxy in front of your application. No code changes to your app.
Content-Security-Policy: default-src 'self';
report-uri https://yourapp.report-uri.com/r/d/csp/enforce
“Report URI has given us the capability to seamlessly build and roll out new Content Security Policies with a high level of confidence. The unopinionated and technology-agnostic nature of Report URI allowed us to integrate it directly and easily into our existing workflows, and to gain instant visibility into CSP reports. With Report URI's Script Watch product, we can meet our obligations under the new PCI DSS v4.0 requirements, in a way that meaningfully helps us monitor and assure the security of key components of the Paddle platform.”
Colin Barr, Head of InfoSec and IT · Paddle