New: export PCI DSS v4 evidence from real browser traffic.

Supply-chain security

Every script your visitors run, and what's inside it.

Your firewall never sees the third-party scripts in your visitors' browsers. We do: every script, its library and version, and the moment one changes or picks up a CVE.

  • 0 scripts added

    Browsers report natively

  • Real visitor traffic

    Not a crawler snapshot

  • CVE detection

    Fingerprinted from content

  • EU data residency

    France, on OVH

The threat

The breach that never touches your server.

In a client-side supply-chain attack, the vendor gets compromised and your page delivers the payload. Your servers stay clean, your logs stay quiet, and the damage happens in your visitors' browsers. Three incidents, three routes in.

  1. Polyfill.io, 2024

    The polyfill.io domain changed hands in February. By June, the CDN behind it was injecting malicious redirects into pages on 100,000+ websites that embedded one script tag. The code dodged admin users and analytics tools, so sites that only tested their own pages saw nothing.

    Sansec's report
  2. British Airways, 2018

    Magecart attackers edited roughly 22 lines of a Modernizr file on ba.com. For 15 days, every payment form fed cards to an attacker domain. About 400,000 customers were hit; the ICO fine closed at 20 million pounds.

    The ICO's penalty notice
  3. npm chalk and debug, 2025

    18 packages with 2.6 billion combined weekly downloads shipped malicious versions after one maintainer got phished. The payload ran in end users' browsers, hooking fetch and wallet APIs. Every build-time check passed at install; the attack ran after the build.

    Aikido's write-up

How it works

One response header in. Every script accounted for.

No agent to load, no proxy in your delivery path, no robot visiting your site. Your real visitors' browsers are the sensors.

  1. 01 - Collect

    Browsers report every script they run

    Add one response header. From then on, real visitors' browsers report the URL and hash of every script your pages execute: first-party, third-party, and the tag your tag manager loaded last night.

  2. 02 - Analyze

    We identify what's inside each script

    Each script's content is fingerprinted and analyzed to identify the library, framework or vendor behind it, and its version. That identity is checked against known CVE databases and lifecycle status: outdated, unmaintained, end-of-life.

  3. 03 - Act

    Changes and CVEs become alerts

    A new script, a changed hash, a new outbound origin or a fresh CVE pings Slack, Teams, Google Chat, Telegram or email as browsers report it. Fix the finding, or block the vector with a CSP built from the same reports.

An inventory built by your real traffic.

Skimmers cloak: they fire on real checkouts in real sessions and stay dormant for crawlers and sandboxes. CentralCSP's inventory comes from what actual visitors' browsers executed, so a script that only misbehaves in production is still on the list.

  • First-party and third-party scripts, per page
  • Last-seen times from live traffic
  • New scripts flagged the moment they appear

A CVE in a marketing tag is still your CVE.

Knowing a script's filename tells you nothing about the jQuery inside it. CentralCSP fingerprints each script's content, resolves the library and version it contains, and holds it against CVE databases and maintenance status. You patch the vulnerable version before someone else finds it first.

  • Content fingerprinting, not just URL matching
  • Known CVEs matched to the exact version
  • End-of-life and unmaintained versions flagged

The SBOM your build pipeline can't produce.

Your CI scans what's in the repo. The tag manager's payload, the chat widget and the analytics snippet never pass through it, and the npm compromise of September 2025 cleared every build-time check before doing its damage in browsers. This SBOM lists what actually ran client-side.

  • Technologies and versions from live pages
  • Covers scripts that never touch your repo
  • Export it for security reviews and audits

Data leaving the page is a report, not a mystery.

Web skimming has two tells: a file that changed, and data flowing to an origin you never approved. Browsers can report both. An integrity violation fires when a script stops matching its SRI hash; a connection report fires when the page talks to an undeclared origin.

  • Outbound connections to unknown origins reported
  • SRI mismatches reported by the browser itself
  • Hash changes tracked script by script

Prevention

Detection tells you. Configuration stops it.

The same reports that build your inventory harden your policy: lock down what can load and where data can go, then let the browser enforce it.

A CSP from real traffic

The CSP builder turns collected reports into a policy that fits your site: script sources locked to what you actually use, connect-src and form-action closed to unknown origins, so a skimmer has nowhere to send the data.

  • Built from production reports
  • Exfiltration destinations locked down
  • Report-only first, enforce when clean
See the CSP builder

Integrity on your assets

Pin your static scripts with Subresource Integrity and a swapped file refuses to run. Browsers report every mismatch, so tampering surfaces even where you can't pin.

  • SRI hashes generated in seconds
  • Integrity violations reported live
  • Covers the polyfill.io failure mode
Generate SRI hashes

Headers graded continuously

The free scanners grade your CSP and security headers like an attacker reads them: which origins may run code, which destinations may receive data, what reporting you'd have during an incident.

  • CSP and header scanning
  • Reporting setup verified
  • Free, no account needed
Scan your headers

Approaches

Three ways to watch your scripts.

Every client-side security product answers one question differently: what do you have to add to your site to get visibility? Here is the honest comparison the vendors skip.

Comparison of client-side security deployment models
CentralCSPInjected agentProxy delivery
Adds nothing to your pageYes: Nothing, a headerNo: Its own scriptNo: A proxy in the path
Sees real visitor sessionsYes: Every browser reportsYes: While its script runsPartially: Proxied traffic only
Catches cloaked skimmersYes: Fires on real checkoutsPartially: Unless evaded firstPartially: If payload inspected
Blocks malicious scripts inlinePartially: Via your CSPYes: In-browser blockingYes: Blocks at the edge
Adds no page weight or latencyYes: Zero bytes addedNo: Runs on every pageNo: Latency per fetch
Adds no new attack surfaceYes: Never in the pageNo: One more third partyNo: It serves your code

Check your exposure

How exposed is your site right now?

Two minutes: see which origins can run code on your pages today, and whether you would even hear about it when one goes bad.

Free, no account needed. Results land on a shareable page.

Trusted by teams across the world

Taking payments? This is now mandatory.

Since March 2025, PCI DSS v4 requires a justified inventory of every payment page script (6.4.3) and alerts on unauthorized changes (11.6.1). That is this page's feature set, pointed at your checkout, with the evidence exports your assessor asks for.

See PCI DSS evidence
  • Script inventory with justifications
  • Change and tamper alerts
  • CSV and PDF evidence exports
  • SBOM for the assessor

FAQ

Frequently asked questions

Client-side supply-chain attacks and how we catch them, answered.

Find out what your pages ran today.

Add the header this afternoon and the inventory builds itself from your next visitors. Free trial, no agent, no proxy, no code change.