CSP builder
The strictest CSP your site can run, built from real traffic.
A strict Content Security Policy is your best defense against cross-site scripting, and the hardest header to write by hand. CentralCSP builds yours from what real browsers report, not from a crawler's snapshot of your homepage.

From real traffic
Not a crawler snapshot
One response header
No agent, no page script
Report-only first
Enforce when it's clean
Directive by directive
Every source justified
How it works
From real reports to a policy you can enforce.
No crawl, no guesswork, no allowlist typed from memory. Your visitors' browsers do the fieldwork, and you approve the result.
01 - Collect
Real browsers report every source
Ship the report-only policy we generate for you. It blocks nothing, and from that moment every visitor's browser reports each script, style and connection your pages actually load.
02 - Build
We draft the policy, directive by directive
CentralCSP turns those reports into a Content Security Policy: script-src, connect-src, style-src and the rest, each filled with the exact sources your real traffic justifies and nothing it doesn't.
03 - Deploy
Deploy the policy you built
When the report-only run is clean, copy the finished header and deploy it from your CDN, proxy or framework. Serve it as enforcing and the browser blocks everything the policy doesn't allow.
You approve the policy before it ships.
Every source the builder proposes carries its evidence: how many browsers loaded it, on which pages, and when it was last seen. A real dependency is obvious, and the junk that ad blockers and password managers inject gets flagged as extension noise so it never lands in your allowlist. Keep what's real, drop the rest, one directive at a time.
- Each source ranked by report volume
- Browser-extension noise flagged for you
- Keep or drop, directive by directive
It ships strict, not just working.
A crawler emits a loose allowlist that happens to load your page. A report-driven policy locks script-src to the exact hosts your traffic uses, closes connect-src to the origins you actually talk to, and sets object-src and base-uri to none. Where an inline script would force unsafe-inline, the builder flags it instead of quietly weakening the policy, so an attacker gets no XSS foothold from a loophole you never noticed.
- script-src limited to the hosts you actually load
- connect-src, object-src and base-uri locked down
- Inline scripts flagged, never silently allowed
Approaches
Three ways to get a Content Security Policy.
A CSP is only as good as its coverage. Here is the honest comparison between writing one by hand, scanning a page for one, and building it from the traffic you already have.
| CentralCSP | Crawler / scanner | By hand | |
|---|---|---|---|
| Covers pages behind a login | Yes: Every visited page | No: Homepage only | Partly: If you remember it |
| Sees conditional third parties | Yes: Real sessions catch them | No: Missed if not triggered | Partly: Only what you know |
| Filters browser-extension noise | Yes: Flagged by volume | No: Not distinguished | No: You guess |
| Stays current as the site changes | Yes: New reports show drift | No: A one-time snapshot | No: Manual rewrite |
| Reaches enforcement safely | Yes: Report-only, then enforce | Partly: Starter policy only | No: Days of testing |
Alerting
A new source shows up? You hear about it.
The same reports that build your policy can page you. When a script loads from an origin your policy never allowed, CentralCSP posts it to Slack, Teams, Google Chat, Telegram or email before the next visitor loads the page.
- New-origin and hash-change rules
- Violation spikes after a deploy
- Routed to the channel that owns the page
Monitoring
CSP is one report. Browsers send eleven more.
Your policy only reports what it blocks. Real browsers also report network errors, crashed tabs, deprecations and integrity failures, and CentralCSP collects all twelve types on the same endpoint, deduped and classified.
- All 12 browser report types, one endpoint
- Deduped, grouped and searchable
- Server-side failures the browser sees first
Check your headers
What does your site send today?
Two minutes, no account: scan your live headers and see whether you have a Content Security Policy at all, how strict it is, and which origins can run code on your pages right now.
Free, no account needed. Results land on a shareable page.
FAQ
Frequently asked questions
Building a policy, filtering noise and rolling it out, answered.
Start collecting today. Enforce when you're ready.
Ship one report-only header this afternoon and watch the policy draft itself from your real traffic. 14-day free trial, no agent, no page script.
