Skip to content
Free tools Website Script Scanner

Website Script Scanner — every script a page runs, and where it sends data

A real browser loads the page and lists every script it runs — including the ones a tag manager injects after load — with its vendor, content hash and SRI, every server the page sends data to, and the security headers PCI DSS 6.4.3 and 11.6.1 care about.

100% free No signup Real browser Injected scripts included CSV inventory

How it works

  1. Paste the page that matters

    Your checkout or payment page is the one PCI DSS cares about, but any public URL works. Nothing to install, no tag on your site, no signup.

  2. A real browser records everything

    Monity's stealth browser loads the page like a shopper would and records every script it runs — including ones a tag manager adds after load — and every request the page makes.

  3. Review, export, then watch

    See each script's vendor, content hash and SRI, where data goes, and the header gaps. Download the inventory as CSV, or let Monity re-scan on a schedule and alert you when anything changes.

Every script on the page — not just the ones in your HTML

A modern web page assembles itself in the browser. The HTML your server sends names a handful of scripts; those scripts load more — a tag manager publishes analytics and advertising pixels, an A/B testing tool swaps in variants, a chat widget pulls in its own code. None of that appears in your source code or in "view source", which is exactly why it is where attackers like to hide.

This scanner does what a shopper's browser does. Monity's stealth browser — the same engine behind Monity's website monitoring — opens the page, lets every script run, and records each one it executes or requests, including the scripts another script injects after load. Then it reports what it saw: a script inventory, where the page sends data, and the security headers that decide what a script is allowed to do.

What the scan reports

  • Script inventory — every external and inline script, first or third party, the vendor behind it when it is a known one, what loaded it (your HTML or another script), and its size.
  • Content hashes — a SHA-256 fingerprint of each script exactly as the browser received it, inline scripts included. When code changes, its hash changes; that is the basis of tamper detection.
  • Subresource Integrity (SRI) — whether third-party files carry an integrity attribute, so the browser refuses a modified copy.
  • Data destinations — every server the page sent requests to: the places data typed into or read from this page can go.
  • Frames — embedded frames such as the card fields your payment provider hosts, so you can see whether card data is entered on your page or inside the provider's frame.
  • Security headers and injection signals — Content-Security-Policy, HSTS, framing protection, suspicious inline code, eval of encoded strings and javascript: links.

Every table downloads as CSV. The script inventory adds blank columns for a business justification, an owner and an authorization date — the fields an assessor asks for.

How Magecart skimming works — and what a scan can see

"Magecart" is the umbrella name for groups that inject card-skimming code into checkout pages. The skimmer is a small script that reads what a shopper types into the payment form and quietly sends a copy to a server the attacker controls. It gets onto the page through a compromised plugin, a hacked admin account, or — increasingly — a third-party script that the site trusts: the 2018 British Airways breach, which ended in a £20 million fine from the UK's ICO, ran through a modified script on the airline's own site, and in 2024 the polyfill.io domain was bought and used to serve malicious code to more than 100,000 websites that had simply included it.

A scan sees the traces a skimmer cannot avoid leaving in the browser: a script from an origin you did not expect, a familiar script whose content hash suddenly differs, a request to a domain you do not recognise, or card fields that are not inside your payment provider's frame. What a single scan cannot do is prove the page is clean. Skimmers are often conditional — active only on the checkout, only for visitors in certain countries or on mobile, only at night, or only once a card number is typed — so the reliable defence is watching the page continuously and alerting on the first change.

PCI DSS 4.0.1 requirements 6.4.3 and 11.6.1, in plain English

6.4.3 — manage every payment-page script

Every script that is loaded and executed in the customer's browser on a payment page must be managed: there is a method to confirm each script is authorized, a method to assure the integrity of each script, and an inventory of all scripts with a written business or technical justification for why each one is necessary.

11.6.1 — detect changes and tampering

A change- and tamper-detection mechanism must alert personnel to unauthorized modification — including additions, changes and deletions — of the security-impacting HTTP headers and the script contents of payment pages as received by the consumer's browser. It must run at least weekly, or as often as the merchant's targeted risk analysis defines.

Both requirements were best practice until 31 March 2025 and have been mandatory since. For merchants that validate with SAQ A (a fully outsourced payment page or an embedded payment frame), the January 2025 update removed them and added an eligibility criterion instead: confirming that the site is not susceptible to attacks from scripts that could affect the merchant's e-commerce systems.

Where this tool fits: the inventory and its CSV give you the list to justify and authorize, the hashes and SRI column are integrity evidence, and the header checks cover the "security-impacting headers" half of 11.6.1. A one-time scan is evidence of one moment, though, not a detection mechanism — and it is not a PCI assessment. Your QSA or acquirer decides what is sufficient.

Reading your results

  • Third-party scripts without SRI. Add integrity and crossorigin="anonymous" to versioned files, or host them yourself. Files that change by design, such as tag manager containers, cannot use SRI — keep them in the inventory and watch their content.
  • Scripts injected at runtime. Look at what your tag manager publishes on payment pages and who can publish there. Many teams exclude checkout pages from marketing tags entirely.
  • Unfamiliar data destinations. Every domain should map to a vendor you chose. One you cannot explain is worth investigating today.
  • No Content-Security-Policy. A CSP limits where scripts may load from and where data may be sent. Start with Content-Security-Policy-Report-Only to learn what your page needs before enforcing it.
  • Suspicious inline code. eval on encoded strings is common in legitimate tag snippets but is also how injected code hides. Confirm each one belongs to a vendor you know.

From a one-off scan to change detection

Monity's script & connection watch runs this same scan on your payment pages on a schedule — stepping through to the checkout if it sits behind a basket — and alerts you in Slack, Teams or email when a new script source appears, a third-party script's content changes (your own too, if you ask), data starts going to a new destination, a form or payment frame points somewhere new, or a security header changes. Mark the origins you have approved, and only unexpected ones raise an alert. That is the weekly-or-better detection 11.6.1 describes, with the history to show an assessor.

Related free checks: the cookie scanner shows which of these scripts set cookies or contact trackers before consent, the SSL checker verifies the certificate in front of your checkout, the security headers checker grades CSP, HSTS and the rest in detail, and the SEO audit reviews security headers alongside on-page SEO.

FAQ

Common questions

What does the script scanner check?

Everything a browser runs on the page. Scripts: every external and inline script, including the ones another script injects after the page loads, with who serves it, whether it is first or third party, its size and a SHA-256 hash of its content. Integrity: whether third-party files are pinned with Subresource Integrity (SRI). Data destinations: every server the page sends requests to. Frames: embedded frames such as hosted payment fields. Security signals: Content-Security-Policy, HSTS, framing protection, suspicious inline code and javascript: links.

Can it detect a Magecart card skimmer?

It shows you what a skimmer needs to exist: a script you did not expect, a script whose content changed, a page sending data to a domain you do not recognise, or card fields outside your payment provider's frame. It cannot promise a page is clean. Skimmers are often conditional — they run only on the checkout, only for some countries or devices, at certain hours, or only once a card number is typed — so a single scan can miss them. Watching the page continuously and alerting on the first new script or destination is what catches them.

What do PCI DSS requirements 6.4.3 and 11.6.1 ask for?

6.4.3 asks merchants to manage every script that loads and runs on a payment page in the customer's browser: confirm each one is authorized, assure its integrity, and keep an inventory with a written business or technical justification for each. 11.6.1 asks for a change- and tamper-detection mechanism that alerts on unauthorized changes to the security-impacting HTTP headers and the script contents of payment pages as the browser receives them, run at least weekly (or as often as your targeted risk analysis says). Both have been mandatory since 31 March 2025 under PCI DSS 4.0.1.

Is a one-time scan enough for PCI compliance?

No. A scan gives you evidence: an inventory, hashes and headers as they were today. Requirement 11.6.1 is about detecting changes over time, which takes repeated checks, and 6.4.3 needs your own authorization and justification for each script — the CSV export has columns for that. On SAQ A, the January 2025 update replaced both requirements with an eligibility criterion: confirming your site is not susceptible to attacks from scripts that could affect your e-commerce systems. Your QSA or acquirer decides what evidence is enough; this tool is not a PCI assessment.

What is Subresource Integrity (SRI)?

An integrity="sha384-…" attribute on a <script> tag that tells the browser the exact hash the file must have. If the third-party server ever sends something else, the browser refuses to run it. SRI works for versioned files that never change; it cannot be used for files that change by design, such as a tag manager container — those need to be inventoried and watched instead.

Why does the scan find scripts that are not in my HTML?

Because modern pages assemble themselves in the browser. Tag managers, A/B testing tools, chat widgets and advertising pixels add more scripts after the page loads, and those never appear in your source code or in a "view source". That is why this scanner uses a real browser rather than reading the HTML — and why a review of your own code is not a script inventory.

Can Monity alert me when a script on my checkout changes?

Yes. Monity's script & connection watch re-runs this scan on your payment pages on a schedule and alerts you in Slack, Teams or email when a new script source appears, a third-party script's content changes, data starts going to a new destination, a form or payment frame points somewhere new, or a security header changes. Mark the origins you have approved, and only the unexpected ones alert. Script watch is part of Monity's paid plans; you can create an account free and start with the free plan's 3 monitors.

Powered by Monity

Your scripts are fine today.
Know the minute one changes.

Monity re-runs this scan on your payment pages on a schedule and alerts you in Slack, Teams or email when a script, its content or a data destination changes.

  • Free 7-day trial
  • No credit card
  • 3 monitors free, forever
Kamil, Alex and Martyna Median reply under 6 hours

Have a question?

Pricing, security, or scoping - pick a route and you will land in a real person's inbox.