Tools
CSP scanner
Enter a URL and we fetch its live Content-Security-Policy, score it from 0 to 100, and list prioritized fixes.
Scan a URL
Fetch a URL and inspect its Content-Security-Policy.
Sample result
What a scan gives you
A score out of 100, the policy exactly as your server sends it, and a fix attached to every flagged value. Run the scanner above to see your own.
CSP needs attention
Overall CSP score
Next actions
Replace 'unsafe-inline' in script-src with a nonce or hash
Remove the https: scheme from script-src and name each origin
Add frame-ancestors 'self' to the policy
How well the site resists client-side attacks.
The configuration has security gaps to address.
Hygiene only: typos, duplicates, dated values.
A few things to tidy up: dated values, duplicated directives, options that no longer match current practice. None of them weakens the site, they just make it harder to maintain.
Flagged values are tinted by severity. Select one to see what is wrong, the impact, and the fix to apply.
Findings & recommendations
Issues and quality recommendations for this Content-Security-Policy.
Wondering whether 59 is bad? Compare a score against the sites in your sector.
Guide
Understanding your CSP scan
Your Content-Security-Policy tells the browser what a page is allowed to load and run, and who is allowed to embed it: scripts, styles, frames, connections and more. Our scanner fetches your URL the way a browser or a rating platform would, reads the policy your server actually sends, and grades how well it does that job.
What does our CSP scanner check?
It reads the Content-Security-Policy header your server actually returns, not the one in your config file, and grades what it finds against the way browsers enforce it:
- Permissive keywords that switch the protection off, such as 'unsafe-inline', 'unsafe-eval' and 'unsafe-hashes'.
- Wildcards, scheme sources and shared hosts broad enough to let anything through, such as * or a bare https:.
- Known bypasses hiding in the origins you allow: JSONP endpoints and script gadgets that turn an allowlisted host into a way around your policy.
- Nonces and hashes that do not hold up: a nonce that never changes between responses, missing quotes, and values placed in a directive that ignores them.
- Missing directives that leave a side door open, such as object-src, base-uri and frame-ancestors, and whether default-src really covers the ones you left out.
- Deprecated and dead weight: directives the specification dropped, duplicate definitions, unknown values and separators browsers silently ignore.
- The enforced and the Report-Only policy, graded separately, because a Report-Only policy blocks nothing on its own.
How to check a website's Content-Security-Policy yourself
Open DevTools and go to the Network tab, then reload the page. Select the document request, the first one, whose name matches the page URL. Read its response headers and look for Content-Security-Policy. Check for Content-Security-Policy-Report-Only in the same list: a site can send one, the other, or both, and a Report-Only header on its own enforces nothing.
From a terminal, one line does the same job without opening a browser:
What our scanner adds on top is the judgement: a score out of 100, findings ranked by severity with the fix beside each one, and the enforced and Report-Only policies graded separately rather than run together.
curl -sI https://example.com | grep -i content-security-policyWhy a weak policy matters
One injected script is all it takes: stolen sessions, or a card skimmer sitting on your checkout for months. A Content-Security-Policy is the browser-side control that stops that script from running, and most of the web does not have one.
Across the 761,345 sites we scanned, only 19% serve a CSP at all, and where a policy does define script-src, that directive fails our security checks 89% of the time. Shipping any policy puts you ahead; shipping a strict one puts you in a small minority. The full numbers are in the State of the Web 2026 report.
How the scan works
Enter a URL, get a graded report a few seconds later: a shareable link, a re-scan button for checking the fix you just deployed, and CSV or PDF exports for the ticket or the audit trail. Free, no account, and it reads only your site's public response, the same thing every visitor's browser receives.
Scanner, evaluator, or full headers audit?
| CSP scanner | CSP evaluator | Security headers scanner | |
|---|---|---|---|
| What you give it | A live URL | A pasted policy | A live URL |
| What it grades | The policy your server sends | A draft or staging policy | Every security header, with the CSP analysis inside it |
| Best for | Auditing a site you or a vendor runs | Reviewing a policy before deploy | One grade for the whole header set |
Use our scanner when the policy is live: it tests what your server actually sends, which is also what browsers and rating platforms see. For a draft, a staging policy or a colleague's proposal, paste it into the CSP evaluator and get the same graded analysis without a public URL. And when you want the whole posture in one pass, HSTS, X-Content-Type-Options, Permissions-Policy, cookies and the rest, run the security headers scanner instead: it scores the full header set and includes the CSP analysis as one part of it.
More free tools
Keep auditing with the other free tools
Every tool is free, runs without an account, and scores with the same severity scale.
CSP evaluator
Paste a policy that is not deployed yet and get the same scoring and findings as a live scan, no URL required.
- Audit before you ship
- Same scoring engine
Security headers scanner
Grade every security header a URL sends, from HSTS to Permissions-Policy, with each finding explained and prioritized.
- Every header, one grade
- Fix list ordered by impact
Reporting API checker
Check that violation reporting actually works: endpoints, Reporting-Endpoints and Report-To, and which security features really report.
- Endpoint and feature mapping
- Silent drops flagged
SRI hash generator
Turn a CDN script or stylesheet URL into its Subresource Integrity hash, with a ready-to-paste tag and a CORS check.
- SHA-256, 384 and 512
- CORS verified for you
CSP hash generator
Turn an inline script or style into the hash that lets it run under a strict policy, right in your browser.
- Runs entirely client-side
- SHA-256, 384 and 512
Website compare
See where your score stands: your site beside the dataset average and the year's best-configured sites, control by control.
- Published, auditable references
- Radar view per category
FAQ
Frequently asked questions
Checking, scoring and fixing a Content-Security-Policy, answered.
A scan is one moment. Your CSP moves.
Every deploy, tag manager change or vendor update can weaken the policy you just fixed. CentralCSP watches your Content-Security-Policy from your real visitors' browsers and tells you the moment something breaks or a new script appears. Add one header, no code changes.
