Which Magento Open Source payment page script duties the platform covers
Magento Open Source's Content Security Policy controls cover the authorization and tamper-detection parts of PCI DSS requirements 6.4.3 and 11.6.1, but they do not produce the script inventory, the written justification for each script, or the weekly change and tamper alerting that the requirements also expect. Those outputs remain your responsibility, whether your team or a partner builds them. The platform support starts with CSP headers, which Adobe's developer documentation says Magento Open Source supports from version 2.3.5, and with restrict mode, which runs by default on storefront and admin payment pages from 2.4.7. Treat the platform as one input to your 6.4.3 and 11.6.1 control set, not as the whole control set. Confirm the exact policy directives your build emits before you describe them in any assessment file.
Start with applicability. Requirements 6.4.3 and 11.6.1 appear in the PCI DSS v4.x Self-Assessment Questionnaire D, and both became mandatory on 31 March 2025. In January 2025 the PCI Security Standards Council removed both requirements from SAQ A and added an eligibility criterion that the merchant's site is not susceptible to script attacks, so a store that previously validated on SAQ A may now belong on a different questionnaire. Confirm with your acquirer or the relevant payment brands which SAQ or report applies to your environment. The Council does not enforce compliance itself, so the brands set the validation path and any enforcement program that applies to you.
If your checkout hands card entry to a 3-D Secure solution, PCI SSC FAQ 1581 says you do not need to validate 6.4.3 for the 3DS scripts. That exception does not extend to other scripts on the payment page, including analytics, chat widgets, tag managers and marketing pixels. Any script run for another purpose remains subject to 6.4.3. Build the inventory so it lists every script, then mark which entries fall under the 3DS exception and which do not. Record the reason for each decision, because an assessor will ask how you drew that boundary and will expect the record to match what the browser actually loads.
DeployOpen plans, configures and documents the Magento side of this work and prepares the systems, controls and evidence an assessor will review. DeployOpen does not issue a Report on Compliance, an Attestation of Compliance or any other validation. A Qualified Security Assessor completing a ROC, or the merchant completing an SAQ with its AOC, produces that result, and PCI SSC FAQ 1220 states that compliance certificates are not recognized as validation. Ask any prospective partner which evidence they will produce, who signs the attestation, and which items stay with your team, including the weekly review and the justification sign-off.
Mapping requirements 6.4.3 and 11.6.1 to Magento capabilities and configuration
This table compares each payment page script rule in PCI DSS requirements 6.4.3 and 11.6.1 with what Magento Open Source provides and what your team must configure or build. Read each row from left to right: the capability column shows the platform feature, the configuration column shows what to set, and the gap column shows the work or evidence that remains. The main takeaway is that Magento's CSP controls support script authorization and integrity, while the inventory, justification records and change detection are still yours to build and keep.
| Requirement | Platform capability | Configuration needed | Remaining gap |
|---|---|---|---|
| 6.4.3 authorization of each script | Content Security Policy headers, supported from version 2.3.5, which limit the script sources a browser may load on a page | Define an allowlist of approved script sources for each payment page; confirm restrict mode is active on storefront and admin payment pages, which is the default from 2.4.7 | CSP limits where scripts load from but does not record who approved each script or why; the approval workflow is yours |
| 6.4.3 script integrity | Subresource Integrity support, to be confirmed against the Magento version in use (no supplied documentation covers it) | Where support is confirmed, add integrity hashes to each approved external script; where it is not, rely on the CSP allowlist and pinned script hosting | Hashes must be regenerated on every script update, and first-party or inline scripts need a separate integrity method |
| 6.4.3 inventory with written justification | No script inventory or justification register is covered by the platform controls documented here | Build the inventory from the CSP policy, theme and module files, and any tag manager configuration; record purpose, owner and justification for each script | The written justification and periodic review are records you must produce and keep as assessment evidence |
| 11.6.1 tamper detection on headers and payment page content | Not covered by the platform controls documented here; CSP defines the expected header policy but does not alert on changes | Baseline the security headers and payment page HTML as delivered to a browser, then compare them from outside the server and alert personnel on any unauthorized change | Confirm whether any Magento feature or extension reports changes; otherwise an external monitoring tool and alert routing are required |
| 11.6.1 seven-day frequency or targeted risk analysis under 12.3.1 | No platform scheduling control is covered here; the check frequency is set by your own tooling | Run the tamper check at least every seven days, or document a targeted risk analysis under 12.3.1 that sets a different frequency | The risk analysis record, alert response procedure and evidence of each check run are yours to maintain |
Evidence auditors will ask for and how to keep it
Requirements 6.4.3 and 11.6.1 are assessed by what you can show, not by what you intended to configure. The items below are the records a QSA or your payment brand is likely to request, and each one only holds up if it is produced and kept as a routine part of operating the store.
Exported CSP policy and version history
Keep an exported copy of the Content Security Policy that Magento serves on payment pages, with each change dated and attributed to a named approver. Magento runs CSP in restrict mode by default from 2.4.7, so the exported policy should match what browsers actually receive. Check that a reviewer can see which script sources were allowed on a given date, not only the current state.
Magento CSP and integrity configuration snapshot
Capture the Magento configuration for CSP and Subresource Integrity at regular intervals and before each release, including the storefront and admin payment page settings. A snapshot shows that the integrity controls were enabled at a given time, which a policy file alone does not prove. Confirm the snapshot includes the settings in the deployed environment, since values can differ between staging and production.
Payment page script inventory with owners
Maintain a list of every script that loads on payment pages, including those added by extensions, tag managers, analytics and fraud tools. Each entry needs a named owner and a written justification for why the script runs on that page, which is what Requirement 6.4.3 asks for. Review the inventory against the live page after each deployment, because scripts often arrive through third-party extensions without a code change in your own repository.
Approval records for authorized scripts
For each script in the inventory, keep a record showing who authorized it, when, and under which method the authorization was confirmed. Requirement 6.4.3 expects a method to confirm each script is authorized, so approvals should link to the ticket or change request that introduced the script. Check that a removed script also has a record, since auditors look for stale entries that remain authorized after their business purpose ended.
Dated change-detection run logs
Requirement 11.6.1 requires the change and tamper detection mechanism to run at least once every seven days, unless a targeted risk analysis under Requirement 12.3.1 sets a different frequency. Keep logs that show each run with its date, scope and result, including runs that found nothing. Gaps in the log are the most common reason this evidence fails, so check that scheduled runs are monitored for failure.
Alert and response tickets
When the detection mechanism flags an unauthorized change to a script or a security-impacting HTTP header, keep the alert, the triage notes, the response actions and the closure record in a ticketing system. Auditors use these tickets to judge whether personnel were alerted and acted, not only whether detection existed. Test the path once end to end, so the first real evidence is not also the first time the process ran.
How restrict-mode CSP and integrity controls fit the 11.6.1 tamper rule
Requirement 11.6.1 asks for a change- and tamper-detection mechanism that alerts personnel to unauthorized modifications of security-impacting HTTP headers and payment page contents as received by the consumer browser. It must run at least once every seven days, or at a frequency set by a targeted risk analysis under 12.3.1. The requirement is about noticing change and telling people. Magento's restrict-mode Content Security Policy (CSP) and Subresource Integrity (SRI) controls do something different: they limit what the browser will execute. Adobe's developer documentation says Magento Open Source supports CSP headers from version 2.3.5, and from 2.4.7 CSP runs in restrict mode by default on storefront and admin payment pages. Confirm in your own environment and Magento version that restrict mode is active on the checkout and payment pages you serve, and that no custom configuration has weakened the policy.
A CSP header tells the browser which origins may supply scripts, styles, frames and other resources. In restrict mode, a script that is not on the allowed list is blocked from running, and the browser reports the violation. A violation therefore looks like a blocked resource and a report event, not a silently altered checkout. That is why restrict mode is a prevention layer. It stops an injected or swapped script from executing on the payment page, but it does not, on its own, produce the inventory of what changed, the alert to personnel, or the record of the 11.6.1 check. A header that is itself altered by an attacker, or a policy that is too broad, can allow the malicious script through, so the policy must be reviewed as a security artifact.
Subresource Integrity adds a second check: a script tag carries a cryptographic hash, and the browser refuses to run the file if its contents no longer match. SRI works well for scripts loaded from a fixed URL, such as a third-party payment or fraud script, but it does not cover inline scripts or scripts that change on every build unless the hashes are regenerated with each deployment. Confirm whether SRI hashes are generated for your payment page scripts, whether the build or deployment process produces them, and whether the browser enforces them in production. A missing or stale hash is a common reason a legitimate script is blocked, so the team that owns deployments needs a documented path for updating hashes.
The gap that remains is detection in the sense 11.6.1 means. You need a mechanism that observes the headers and page content as a consumer browser receives them, compares them against a known baseline, and alerts a named role. CSP violation reports can feed that signal if they are sent to a collector that someone monitors. Confirm whether your violation reports go to a collector, who receives the alert, how quickly it is triaged, and whether the collector is itself protected. Browser-side tests or an external monitoring service can supply the received-content view, and their schedule must meet the seven-day ceiling or a documented risk-based frequency.
Practical decisions follow from this split. Decide which CSP directives and report endpoints you will own, who reviews policy changes, how SRI hashes are produced and rotated, and which tool produces the weekly-or-better comparison of received headers and page content. Record the outcome as evidence for both 6.4.3 and 11.6.1. Prevention limits harm, and detection proves the controls are still working. Neither replaces the other, and neither is a substitute for a qualified assessor's review of your scope.
What Magento Open Source does not cover on its own
Magento Open Source ships the browser-side controls that help with payment page scripts, including Content Security Policy and Subresource Integrity, but it does not produce the records, approvals and independent checks that PCI DSS 6.4.3 and 11.6.1 ask you to show. The cards below name each gap, the component you must add, and whether that component is a process, a tool or a policy decision.
Script inventory and justification
Requirement 6.4.3 expects a complete inventory of every script on the payment page, each with a written reason it is there. Magento does not maintain that list for you, and extension and theme scripts are easy to miss. Build the inventory from a browser-side crawl of the checkout, then keep a written justification per script that a reviewer can check against the business need. This is a process owned by the merchant, supported by a tool that records what the page loads.
Authorization workflow for scripts
The standard requires a method to confirm each payment page script is authorized before it runs. Magento's CSP settings can limit which sources a page may load, but they do not record who approved a source or why. Define an approval step in which a named owner signs off each script, and tie that approval to the policy that governs who may add or change scripts. This is a policy decision with a process to enforce it, and the approval record must exist before the script is deployed.
Independent browser-side scan of the payment page
Requirement 11.6.1 looks at the payment page as the consumer's browser receives it, including headers and page contents. Server-side configuration and code review do not show what a shopper's browser actually gets, especially after a CDN, a cache or a third-party tag changes the response. Run a scan from a separate browser session against the live checkout, and compare the result with the approved baseline. This is a tool, and the choice of which pages and devices it covers is a policy decision.
Seven-day or risk-based schedule with alerting
The tamper-detection mechanism must run at least once every seven days, or at a frequency set by a targeted risk analysis under 12.3.1. Magento does not schedule or alert on these checks by itself. Set the frequency in writing, either as seven days or as a documented risk-based interval, and configure the scan to notify named personnel when a change appears. Who receives alerts, and how fast they must respond, is a policy decision that needs to be written down.
Extension and third-party scripts
Extensions, theme code and tag managers can add scripts to checkout without touching Magento core, so they can bypass a review limited to the core codebase. Track each installed module and each external tag provider against the inventory, and require that any new extension be reviewed before it reaches production. Review a 3DS provider's scripts under the separate treatment described in PCI SSC FAQ 1581, because scripts run for any other purpose still fall under 6.4.3.
Change-control records for 6.4.3 and 11.6.1
Both requirements expect records that show how each script change was requested, approved, tested and deployed, and how detected changes were handled. Magento's version control and deployment history help, but they rarely connect a script change to its approval and to the alert that followed. Keep a change ticket for each script addition or removal, link it to the inventory entry and the scan result, and retain the records for the assessor. These records are a process output, produced by a ticketing or change tool that the merchant chooses.
Configuration sequence for payment page script controls
This sequence turns Magento Open Source's CSP and integrity features into a documented script inventory, an authorized policy and a tamper-detection process that can be shown to a QSA. Each step produces a record that the next step depends on, so the order matters.
Confirm the Magento version and CSP mode
The platform or security lead records the exact Magento Open Source version in every environment, including staging and the admin. From release 2.4.7, CSP runs in restrict mode on storefront and admin payment pages by default, so teams on earlier releases must confirm whether CSP is enabled and in which mode before they change anything. Output: a dated environment register showing version, CSP mode and the owner of each setting. Check that the register matches what the running instances report, not only the deployment repository.
Confirm supported PHP and component combinations
The platform team checks the Adobe system requirements for the exact release in use and records the PHP version, database, search, cache, message queue, Composer and web server pairings that Adobe lists. Adobe supports only the listed system combinations, so a stack built outside them may not be covered by Adobe's support or security guidance. Output: a signed-off compatibility matrix for each environment. If the current stack falls outside the list, the upgrade or stack change is scheduled before control work continues, because the controls depend on a supported base.
Build the script inventory from pages and code
The security engineer loads each payment page in a browser, both storefront and admin, and records every script that actually executes, including scripts loaded by tag managers, analytics, chat widgets and payment iframes. The same list is checked against the module and theme code, since layout XML, custom modules and third-party extensions can add scripts that a single page load may not trigger. Output: an inventory with script URL or source, the page it appears on, the loading component and the hash where available. Requirement 6.4.3 needs this inventory to be complete, so gaps are logged rather than assumed away.
Write justifications and assign owners
For each inventory entry, a business owner and a technical owner write a short justification that states what the script does, why the payment page needs it and who approved it. Scripts that cannot be justified are removed or scheduled for removal before the policy is written. Output: a justification record per script, with an approval date and a review trigger such as a module upgrade or a change of vendor. Requirement 6.4.3 expects a written justification for each script, so the record should be readable by an assessor without a walkthrough.
Define the CSP policy from the inventory
The engineer turns the approved inventory into a Content Security Policy that lists only the permitted script sources for each payment page type, and tests that policy in report-only or staging mode first so that legitimate scripts are not blocked on the live store. Magento's CSP configuration is applied per store and per area, so each allowed source is traced back to a justification record. Output: a policy file under version control, a test log showing the pages were loaded without unexpected violations, and an approval from the owners named in the previous step.
Enable integrity controls where supported
For scripts that Magento Open Source can load with Subresource Integrity, the engineer enables the integrity attribute and confirms that the hash matches the approved file. Scripts that the platform cannot protect this way are documented as exceptions with a compensating check, such as the change detection in the next step. Output: a list of scripts with integrity enabled, a list of exceptions with their owners, and evidence from a browser test that a modified file fails to load. Hashes must be regenerated after each approved update, so the process belongs in the release checklist.
Set up change detection and alert routing
The security team deploys a browser-side monitor that reads the payment page as a consumer browser receives it and compares scripts and security-impacting HTTP headers with the approved baseline. Requirement 11.6.1 requires this mechanism to run at least once every seven days, or at a frequency set by a targeted risk analysis, so the schedule is written into the policy and tested. Alerts route to a named on-call group with a documented escalation path. Output: a baseline file, a test in which a deliberate change produces an alert, and a routing record showing who receives it and within what hours.
Rehearse a violation response
The incident lead runs a tabletop exercise in which a simulated unauthorized script appears on a payment page, and the team follows the response steps: isolate the change, confirm the source, restore the approved baseline, decide whether payment pages should be taken offline and record the timeline. Findings feed back into the justification records, the CSP policy and the alert routing. Output: a signed exercise report with gaps and owners, and an updated response runbook. The rehearsal should be repeated when the inventory changes materially, and the results belong in the evidence set that the assessor reviews.
Running weekly change detection for payment pages under 11.6.1
Requirement 11.6.1 sets the cadence for this mechanism. It must run at least once every seven days, unless a targeted risk analysis performed under requirement 12.3.1 sets a different frequency. The seven-day requirement became mandatory on 31 March 2025, so a store validating against PCI DSS v4.0.1 should already have a scheduled job or monitoring service in place. The first decision is whether to keep the weekly default or to document a risk-based interval. A longer interval needs a written analysis that considers how often Magento core, theme and extension code changes, how quickly your team can review alerts, and how much the payment page relies on third-party scripts. Most stores will find the weekly schedule easier to defend, and the analysis must be reviewed when the payment flow or script set changes.
Each run compares what a consumer browser receives with an approved baseline. The baseline covers the security-impacting HTTP headers on storefront payment pages, including the Content Security Policy headers that Magento Open Source supports from 2.3.5 and that run in restrict mode by default from 2.4.7. It also covers the contents of those pages, such as script tags and their integrity attributes. The check should request pages the way a shopper's browser would, with the same headers, cookies and redirects, because server-side file hashes can miss what is injected at the edge or by a tag manager. Confirm with your tool vendor how it handles fields that change per session, such as form tokens and cart identifiers, so routine variation does not hide genuine changes. Also confirm where the baseline is stored and who can write to it.
The baseline changes whenever the store changes legitimately, so re-approval needs a defined path. Each Magento upgrade, patch, theme change or extension update should produce an expected difference tied to a change ticket. The owner of the payment page scripts reviews that difference against the script inventory required by requirement 6.4.3, confirms that each new or altered script is authorized and justified, and then approves a new baseline with a named approver and date. Adobe's release schedule says full patches for the 2.4.x LTS line ship annually in May and that security patches ship at least annually for all supported release lines. Its upgrade guide recommends applying each patch cycle to stay secure and PCI compliant. Because security patches and extension updates can land separately, plan approval windows around them. The job that detects changes should not also update the baseline automatically.
Alerts need an owner and a record. When a run finds an unapproved header or script change, the alert should reach a named on-call role through a channel someone actively watches, such as a paging service, and include the diff, the detection time and the affected page. Personnel then triage the change, decide whether it is malicious, an unapproved release or a fault, and take containment steps such as removing the script or restoring the baseline. Each step goes into a response record that links to the alert, the change ticket and the 6.4.3 justification for any script involved. Ask your QSA or acquirer which evidence they expect, such as sample alerts, closed tickets or run logs. PCI SSC FAQ 1220 states that certificates are not recognized as validation, so the assessment is documented on the Report on Compliance or the Self-Assessment Questionnaire and its Attestation of Compliance.
Questions buyers ask before hiring help with payment page scripts
What makes the payment page script inventory take more or less effort?
The main drivers are the number of extensions, custom modules, third-party scripts and payment pages. Each extension or custom module can load its own JavaScript, and each script needs a stated purpose, an owner and a written justification under requirement 6.4.3. Checkout, cart, account and admin pages can load different scripts, so each page needs its own review. Stores with a long history of added modules usually spend the most time tracing where a script came from. Scripts a payment provider runs for 3-D Secure are treated differently under PCI SSC FAQ 1581, but any script run for another purpose stays subject to 6.4.3. Ask your acquirer which pages are in scope before you size the work.
Can our in-house team handle PCI DSS 6.4.3 and 11.6.1 without a partner?
Yes, if your team can own three things: the script inventory, the written justifications and the weekly change and tamper-detection run. Requirement 11.6.1 requires the mechanism to run at least once every seven days, or at a frequency set by a targeted risk analysis under 12.3.1, so the run must be scheduled, reviewed and evidenced every cycle. Your team also needs someone who can approve or reject new scripts and keep the approval record. Teams that treat the work as a one-time project often find the recurring tasks lapse after launch. A partner is often used for the initial inventory, tooling and documentation, while your staff runs the routine. Agree that split in writing.
How long does a payment page script inventory project take?
A reliable duration depends on your store's extensions, custom code, third-party scripts and number of payment pages. No standard timeline applies to every store, so any date given before the inventory exists is a guess. Ask for a timeline in a written scope that lists the pages covered, the environments reviewed, the deliverables and the dates your team must meet, such as access windows and approval reviews. Ask whether the timeline includes the first weekly run and a handover to your staff. Also ask how delays in approvals or in receiving the payment provider's script list will affect the dates.
What access and inputs does a script inventory engagement need from us?
Plan for access to staging and production, read access to code repositories, the payment provider's script list and a named approver. Staging lets you compare what should load with what loads, but production shows what the consumer's browser actually receives, so both are usually needed. Ask which accounts, roles and network paths are required and who will grant them. Without a named owner for approvals, justifications stall and the inventory cannot be closed. Ask the partner to list every input in the written scope, with an owner and a date for each, so gaps show up early instead of at the assessment.
Does PCI DSS require a QSA to validate payment page script controls?
It depends on the assessment type your payment brands and acquirer require. A Report on Compliance is completed by a Qualified Security Assessor, while a Self-Assessment Questionnaire is completed by the merchant and supported by an Attestation of Compliance. Confirm which one applies with your acquirer before you plan the work. DeployOpen prepares systems, controls and evidence for assessment, but it does not validate compliance and does not issue audit reports, attestations or certifications. Independent assessors make that determination. PCI SSC states that certificates are not recognized as validation, so ask your assessor to confirm in writing which evidence they accept.
What should a quote for payment page script work include?
A quote follows from a written scope, so it should name the scope it prices. Ask for the in-scope payment pages, extensions, custom modules, third-party scripts and environments reviewed. List the deliverables: the script inventory, justification records, the method for confirming authorization and integrity, the weekly change and tamper-detection setup and the runbook. Separate one-time work from recurring work, such as the weekly run and review of new scripts, and state what each recurring item covers. Ask for assumptions, exclusions, your inputs and approvals, and how changes to scope are handled. DeployOpen does not publish a price list.
Does Magento's built-in CSP restrict mode meet requirement 6.4.3 alone?
No. Content Security Policy restricts which sources the browser may load, but it does not replace the inventory and justification records that 6.4.3 requires. Adobe's documentation says Magento Open Source supports CSP headers from version 2.3.5, and from 2.4.7 restrict mode is the default on storefront and admin payment pages. That policy helps control script sources, but you still need to know which scripts are authorized, why each one exists and who approved it. The weekly change and tamper-detection work under 11.6.1 is also separate. Ask your partner to show how the CSP settings map to each control in your written scope.
How DeployOpen scopes and delivers payment page script controls
DeployOpen plans, implements and documents the controls behind PCI DSS 6.4.3 and 11.6.1 on Magento Open Source stores hosted in infrastructure you control. The work starts with a written scope that names every payment page, script source and change path, then builds Magento's CSP and Subresource Integrity settings alongside the inventory, justification and weekly change detection records that the platform does not supply by itself.
How we scope
- Written scope lists each payment page, storefront and admin route, and script source in the checkout path
- Scope confirms which PCI DSS assessment type applies, such as SAQ A or SAQ D, with your assessor
- Scope records who approves script additions and who owns the justification register
- Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts
How we build
- Magento restrict-mode CSP policies are configured and tested against each payment page template
- Subresource Integrity hashes are applied to approved first-party and third-party scripts, with a documented update step
- A script inventory is built from the live pages, with each entry linked to a written justification
- Weekly change detection compares delivered page content and security-impacting headers, with alerts routed to named staff
How we hand over
- Runbooks cover adding, reviewing and retiring a payment page script, including the approval record
- Test evidence shows CSP violations, integrity failures and detection alerts were exercised on staging
- Documentation maps each control to requirement 6.4.3 or 11.6.1 so your team and assessor can trace it
- Handover includes access notes for the detection tooling and the list of items your team must keep current
How we support
- Ongoing support covers script inventory reviews after Magento patches, extension updates and new integrations
- Retainers can cover recurring review of the justification register and detection alert handling
- Each Magento release line, including 2.4.9, is checked for CSP or integrity changes before upgrades
- Your team retains ownership of the PCI DSS assessment, which remains with your QSA or your SAQ
Sources and further reading
- PCI DSS v4.0 Self-Assessment Questionnaire D for Service Providers ↗
- PCI SSC FAQ 1581: 6.4.3 and 3DS scripts ↗
- PCI SSC blog: New Information Supplement: Payment Page Security and Preventing E-Skimming ↗
- Content security policies ↗
- PCI SSC blog: Important Updates Announced for Merchants Validating to Self-Assessment Questionnaire A ↗
- PCI Data Security Standard ↗

