Deduplicated at the edge
Reports land on a Cloudflare worker close to your visitors. Duplicates are collapsed before they reach your account, so one broken script is one row, not fifty thousand.
Browsers already report every Content Security Policy violation. Dark Duck catches those reports, folds the duplicates into one clean list, and shows you the handful that matter.
| directive | blocked | hits |
|---|---|---|
| script-src | https://cdn.sketchy-ads.io/t.js | 31,904 |
| img-src | https://www.google-analytics.com | 9,812 |
| style-src | inline | 4,377 |
| connect-src | wss://chat.vendor.com | 1,986 |
| frame-src | https://www.youtube.com | 134 |
However many times a violation fires, it shows up once, with a hit count and sample reports.
Browsers send reports in the background after the page has loaded. Nothing runs on your site.
Every plan has a hard cap. Go over it and new reports pause until next month. You never get a surprise bill.
How it works
No script tag, no SDK, nothing running on your pages. Browsers send the reports in the background.
Sign up and add your site. You get a reporting endpoint unique to that domain.
Add the Reporting-Endpoints and CSP lines to your server, CDN or framework config. Start in Report-Only so nothing breaks.
Each unique violation appears once, with hit counts and real samples. Allow it, fix it or ignore it. Then enforce.
# add to your response headers
Reporting-Endpoints: dark-duck="https://ingest.darkduck.dev/r/YOUR_KEY"
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; report-uri https://ingest.darkduck.dev/r/YOUR_KEY; report-to dark-duckFeatures
Most teams leave CSP in Report-Only forever because the reports are unreadable. Dark Duck makes them readable.
Reports land on a Cloudflare worker close to your visitors. Duplicates are collapsed before they reach your account, so one broken script is one row, not fifty thousand.
An email when a new violation appears or a known one spikes. Pro and Team.
Each violation keeps its hit count, first and last seen, and up to five real sample reports.
Allow a source from the catalogue and it is staged in the policy editor. Review the diff, then copy a ready-to-ship header.
Enter a URL to see the security headers it really serves, with plain-language advice on what is weak.
Invite teammates, share domains across a workspace and triage together. Up to 25 seats and 25 domains on Team.
The path
Ship a strict policy in Report-Only. Nothing breaks, and the catalogue fills with everything your pages really load.
Allow the sources you trust, fix the inline code you own, and flag anything you do not recognise.
Switch the header to enforcing and keep monitoring. A new violation now means something changed, and you will hear about it.
Pricing
Start free on one site. Upgrade when you add more.
One site, to see what your policy is really blocking.
Free forever
Start freeFor developers and freelancers running a handful of sites.
For agencies and product teams with many properties.
Prices in USD. Sales tax and VAT worked out at checkout. Hard caps, so you never get an overage bill.
New reports are dropped at our edge until your next billing month. Your existing catalogue stays, and you are never charged an overage. Upgrade any time to raise the cap straight away.
No. Reports are deduplicated at the edge, and we keep one catalogue entry per unique violation plus up to five sample reports for it. That keeps your dashboard readable and your data small.
No. Browsers send CSP reports in the background after the page loads. Nothing runs on your site and you don't add a script tag.
Yes, and we recommend it. Send Content-Security-Policy-Report-Only first, watch the catalogue fill up, fix or allow what is legitimate, then enforce.
Anything that sends CSP reports: Chromium browsers and Safari via report-to, Firefox via report-uri. Dark Duck gives you both lines.
Payments are handled by Lemon Squeezy, our merchant of record, so sales tax and VAT are worked out for your country. Cancel any time and you drop to Free at the end of the period.
Set up in five minutes. Free for your first site, for as long as you like.
Start monitoring free