PCI DSS 6.4.3 Payment Page Script Lint

Finds the third-party scripts, missing SRI hashes and CSP holes on your checkout page that fail PCI DSS 4.0.1 Requirements 6.4.3 and 11.6.1 - with the requirement number on every line.

Get the complete version $29

This page is the working piece. The full pack has everything below.

Finds the third-party scripts, missing SRI hashes and CSP holes on your checkout page that fail PCI DSS 4.0.1 Requirements 6.4.3 and 11.6.1 - with the requirement number on every line.

Vendor script-monitoring tools for 6.4.3 and 11.6.1 run $99-$999 per month, and 1-5 checkout pages typically cost $10,000-$50,000 a year.

Buy the full version — $29
Want the full version?
Enter your email and we send the download link.
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

Five checkout lines that fail PCI 6.4.3 - and the versions that pass

Five lines that a payment-page developer writes without thinking each fail PCI DSS 4.0.1 Requirement 6.4.3 - a tag manager tag, a sha1- integrity hash, an @latest CDN pin, an inline onclick, and a card number written to localStorage. Since March 2025 they are no longer future-dated, so in 2026 every assessment is scored against them in full and there is no grace period left to invoke.

Requirement 6.4.3 asks for three things about every script on a payment page: an inventory, a written business justification, and a method that assures the script has not been tampered with. Requirement 11.6.1 asks you to detect unauthorised changes to the page content and the HTTP headers as the browser receives them. Both apply to merchants who thought an iframe put them out of scope - since v4.0.1 that includes SAQ A.

Here is what fails, and what passes:

<!-- fails 6.4.3: content can change under you, so neither the authorisation nor the change detection holds -->
<script src="https://cdn.jsdelivr.net/npm/chart.js@latest/dist/chart.min.js"></script>

<!-- passes: exact version + a digest the browser enforces -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.min.js"
        integrity="sha384-..." crossorigin="anonymous"></script>

The subtle one is crossorigin. An integrity attribute on a cross-origin script does nothing at all unless crossorigin is also present - the browser silently skips the check. The page looks compliant in a code review and is not.

The second subtle one is the tag manager. A container script is a single line in your source, but it injects further scripts at run time, which means the list of scripts on your payment page cannot be derived from the page source at all. Either move it off the payment page, or inventory and authorise every tag inside the container.

The third is your inventory file itself. An inventory with a URL but no justification and no authorized_by is not an inventory, it is a list. Entries whose justification says TBD are the ones an assessor reads first.

This extension carries 29 checks: 21 that read the page source, and 8 that read a script-inventory JSON and report which entries are missing a justification, an authorisation, an integrity method, or a review date. It runs in VS Code, and the same 29 checks run in the browser on a free page with nothing uploaded - the source never leaves the machine, which matters when the file is a live checkout template.

Free covers one page completely, with every finding shown in full. A licence adds the whole repository, the CSV/JSON/HTML evidence export, re-checking on save, and a JSON report for CI. Script-monitoring services built for these two requirements run $99 to $999 per month; this is $29 once.

Questions people ask

What does the PCI 6.4.3 payment page script lint actually do?

It reads a checkout page - HTML, JSX, a PHP or Twig template, or your script-inventory JSON - and reports every line that fails PCI DSS 4.0.1 Requirement 6.4.3 or 11.6.1, with the line number, a severity and the requirement number. It catches missing SRI hashes, sha1 digests, @latest CDN pins, tag managers, unsafe-inline CSP, card data in browser storage, and inventory entries with no justification or authorisation.

Who is this for?

Developers and agencies who own the checkout or payment page code at a merchant, a platform, or a payment integrator, and who have a PCI DSS 4.0.1 assessment or an SAQ A self-assessment due. It is aimed at the person who has to change the template, not at the compliance manager who writes the policy - every finding points at a line you can edit today.

Why not just use a normal HTML linter or ask an AI chatbot?

A normal linter checks syntax and accessibility; it has no idea that Requirements 6.4.3 and 11.6.1 stopped being future-dated in March 2025 and are now scored in full. A chatbot will describe the requirement but cannot point at line 14 of your own template, cannot see your script inventory, and will not give you the requirement number an assessor asks you to evidence.

What is free and what needs a licence?

Free covers one page completely: open or paste a payment page, run all 29 checks, and read every finding in full. Nothing is blurred, counted down or held back. A licence adds a different job - scanning the whole repository at once, exporting the findings as a CSV, JSON or HTML evidence file, re-checking on every save, and writing a JSON report a CI step can read.

How does the cost compare with a script-monitoring service?

Vendor tools built for Requirements 6.4.3 and 11.6.1 run about $99 to $999 per month, and for one to five checkout pages the annual spend is commonly $10,000 to $50,000. This is $29 once, with a 7-day full refund. It is not a runtime monitor and does not replace one for 11.6.1 - it finds the failures in your source before the monitor and the assessor do.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.