Skip to main content
Blog
Blog

PCI DSS 4.0.1 requirements 6.4.3 en 11.6.1: de client-side compliance-gids

Een clausule-voor-clausule uitleg van PCI DSS 6.4.3 en 11.6.1: de control-tekst, de datum 2025-03-31, en het bewijs dat elke control produceert voor een QSA-audit.

Jul 14, 2026 8 min read
PCI DSS 4.0.1 requirements 6.4.3 en 11.6.1: de client-side compliance-gids

PCI DSS 4.0.1 requirements 6.4.3 en 11.6.1 besturen de scripts en HTTP-headers op je betaalpagina's. 6.4.3 laat je elk script inventariseren, autoriseren en op integriteit verzekeren. 11.6.1 laat je ongeautoriseerde wijzigingen aan de scripts en security-headers van die pagina detecteren en erop alerten. Beide zijn verplicht sinds 2025-03-31. Deze gids breekt elke clausule open, wat het betekent voor de pagina in productie, en het specifieke bewijs dat een QSA verwacht dat het produceert.

Deze twee requirements bestaan vanwege e-skimming. Magecart-stijl aanvallers breken je server niet. Ze wijzigen een script dat de browser laadt, en vangen kaarthouderdata rechtstreeks uit het formulier terwijl de gebruiker typt. Een processor-iframe dekt niet de pagina die het framed. cside leeft in precies die kloof: het registreert elk script dat echte browsers op de betaalpagina executyren, legt autorisatie vast, en flagt integriteits- en headerwijzigingen op het moment dat ze gebeuren.

Wat requirement 6.4.3 daadwerkelijk eist

6.4.3 stelt drie verplichtingen voor elk betaalpagina-script. Lees elk als een afzonderlijke clausule, want een QSA zal dat doen:

  1. Een methode bevestigt dat elk script geautoriseerd is voordat het laadt of executeert.
  2. Een methode verzekert de integriteit van elk script.
  3. Er wordt een inventaris van scripts bijgehouden met een schriftelijke justificatie waarom elk nodig is.

"Autorisatie" en "noodzakelijk" zijn de twee woorden waar teams over struikelen. Autorisatie is een vastgelegde beslissing: een genoemde goedkeurder tekende af dat dit script mag draaien op een pagina in kaarthouderdata-scope. Justificatie is de zakelijke reden dat het bestaat. Een tracking-pixel die marketing vorig kwartaal toevoegde heeft doorgaans geen van beide, precies het soort finding dat 6.4.3 aan de oppervlakte brengt.

De scope is breder dan first-party-code. De control dekt elk script dat de browser op de pagina executeert: je eigen bundles, third-party-SDK's, en de fourth-party-scripts die die vendors op runtime meedragen. Een tag-manager die na paginalaad nog drie extra scripts injecteert zijn drie extra entries in je inventaris, en die entries wijzigen zonder een deploy aan jouw kant.

Het PCI SSC noemt Subresource Integrity (SRI)-hashes en Content-Security-Policy als voorbeeld-integriteitsmechanismen. Ze gelden voor statische assets. Ze breken zodra een script dynamisch is. Een analytics-tag of A/B-tool die legitiem updatet invalideert de hash, dus een gepinde SRI blokkeert óf een goede update óf wordt verwijderd en beschermt niets meer. Content Security Policy kent dezelfde beperking: het kan niet instaan voor wat een toegestaan script op runtime doet. Daarom moet integriteit voor echte betaalpagina's beoordeeld worden op wat executeerde, niet op een hash die op build-tijd werd gezet.

Wat requirement 11.6.1 daadwerkelijk eist

11.6.1 is een detectie-control, geen management-control. Het vereist een change-and-tamper-detection-mechanisme dat twee dingen doet:

  • Alerteert personeel op ongeautoriseerde wijziging (inclusief indicators of compromise, wijzigingen, toevoegingen en verwijderingen) van de HTTP-headers en de content van betaalpagina's zoals de consumentenbrowser ze ontvangt.
  • Evalueert de ontvangen headers en pagina-content op een frequentie die door je targeted risk analysis onder requirement 12.3.1 is gezet, of minstens eens per zeven dagen.

De zin "zoals de consumentenbrowser ze ontvangt" draagt de requirement. 11.6.1 vraagt niet wat je CDN serveerde of wat je repo bevat. Het vraagt wat de browser rendeerde, na elke redirect, injectie en runtime-wijziging. Een skimmer leest navigator.webdriver, ontbrekende automatisering-properties, en de afwezigheid van echte interactie om een scanner te herkennen, en serveert dan schone code eraan en de payload aan een mens. Een control die alleen de gescande versie ziet vuurt nooit.

HTTP-headers vallen in scope omdat ze een aanvalsvlak zijn, geen config-detail. Een verzwakte of gestrippte Content-Security-Policy-header laat een kwaadaardig script laden dat het beleid juist moest blokkeren. 11.6.1 wil dat je opmerkt dat de header überhaupt wijzigde, en dat je het opmerkt op het geleverde antwoord, niet in je origin-config.

Hoe de twee requirements het werk verdelen

6.4.3 bestuurt wat je toestaat; 11.6.1 bestuurt wat er op de pagina gebeurde.

VraagRequirementWat het bestuurtFaalmodus die het vangt
Welke scripts zijn hier toegestaan, en waarom?6.4.3Autorisatie, justificatie, integriteit, inventarisEen niet-goedgekeurd of ongedocumenteerd script in scope
Wijzigde de pagina of zijn headers zonder goedkeuring?11.6.1Detectie en alerting op script- en headerwijzigingenEen live tamper die de inventaris nooit opmerkte
Hoe vaak checken we de geleverde pagina?11.6.1 + 12.3.1Frequentie, met een zeven-dagen-vloerVerouderde checks die transiente wijzigingen missen

Behandel ze als één loop, niet twee projecten. Een inventaris zonder live-detectie is een lijst die veroudert zodra een vendor een update pusht. Detectie zonder inventaris produceert alerts die niemand kan triage-ren, omdat er geen baseline is van hoe "geautoriseerd" eruitziet.

Het bewijs dat elke control moet produceren

Een QSA beoordeelt compliance op basis van artefacten. Map elke clausule naar het record dat het genereert zodat je precies kunt overhandigen wat hij vraagt.

ClausuleBewijsartefactWat het moet tonen
6.4.3 inventarisScriptinventaris gekoppeld aan in-scope-pagina'sElke script-URL, owner en laatst-geziene versie
6.4.3 autorisatieGoedkeuringsrecord per scriptWie het goedkeurde, wanneer, en welke data het aanraakt
6.4.3 justificatieBusiness-reason-notitie per scriptWaarom het script nodig is op een betaalpagina
6.4.3 integriteitIntegriteitsgeschiedenisHoe elk script in de loop der tijd ongewijzigd wordt bevestigd
11.6.1 detectieChange-log met alertsTimestamp, diff, pagina en wie genotificeerd werd
11.6.1 header-evaluatieHeader-geschiedenis per paginaSecurity-header-waarden en wijzigingen tussen loads
11.6.1 frequentieRisicoanalyse + check-cadansDe 12.3.1-onderbouwing en bewijs dat checks draaiden

Het artefact dat teams het vaakst missen is integriteits-geschiedenis en header-geschiedenis in de loop der tijd. Eén snapshot bewijst dat de pagina één keer schoon was. Een QSA die 11.6.1 beoordeelt wil bewijs dat je een wijziging zou hebben gevat: een timestamped record over veel echte paginaladen, niet één screenshot.

Waarom een processor dit niet voor jou sluit

Een veelvoorkomende aanname is dat het hosten van betaalvelden in een Stripe-, Adyen- of Braintree-iframe 6.4.3 en 11.6.1 naar de processor schuift. Dat doet het niet. Het iframe is gesandboxed, maar de merchant-pagina die het framed is dat niet. Je analytics, A/B-tooling, session-replay en chat-widgets draaien allemaal in dezelfde top-level-browser-context, en een script daar kan de DOM lezen, een nep-input-veld bovenop het iframe overlayen, of het formulier bij submit redirecten. De SAQ A-update van januari 2025 verfijnde eligibleheid omdat zo weinig echte betaalpagina's vrij zijn van third-party-scripts, en het voegde een criterium toe dat je bevestigt dat je site niet vatbaar is voor script-gebaseerde aanvallen, wat moeilijk te bewijzen is zonder monitoring. De requirements blijven bij de pagina die je serveert.

Waarom de dreiging steeds moeilijker te scannen wordt

De reden dat 11.6.1 aandringt op de geleverde pagina is dat aanvaller-tooling gebouwd is om alles te verslaan dat niet echt is. Headless- en geïnstrumenteerde browsers lekken: een navigator.webdriver-flag, ontbrekende chrome-runtime-objecten, Chrome DevTools Protocol Runtime-artefacten, en onmogelijke timing markeren een sessie allemaal als niet-menselijk. Skimmers fingerprinten die signalen en blijven slapend voor crawlers en synthetische checks.

Evasie-tooling is ook de andere kant op gegaan. cside's onderzoeksrapport over de toekomst van webbeveiliging vond dat playwright-stealth, automatisering afgesteld om die lekken te onderdrukken, ruwweg tienvoudig breder in gebruik was tegen het einde van 2025. De praktische takeaway voor 6.4.3 en 11.6.1: integriteits- en change-detectie moeten draaien waar de kaarthouderdata daadwerkelijk wordt ingevoerd, in de echte browsersessie, niet vanaf een extern standpunt dat een evasief script kan herkennen en zich voor verbergen.

Hoe cside dit bewijs op de browserlaag produceert

cside instrumenteert de betaalpagina in echte browsers, het oppervlak waar beide requirements op wijzen.

  • Voor 6.4.3 legt het de volledige scriptinventaris vast, inclusief de fourth-party-scripts die vendors op runtime meebrengen, registreert autorisatie en justificatie naast elke entry, en bewaart een integriteitsgeschiedenis zodat je kunt bewijzen dat een script tussen versies intact bleef.
  • Voor 11.6.1 monitort het script-content en HTTP-security-headers op de geleverde pagina, diff't ze over loads, en alerteert op ongeautoriseerde wijziging, met een timestamped record dat de 12.3.1-frequentievraag beantwoordt zonder een handmatige wekelijkse pull.
  • Het brengt ook de runtime-payload van elk script aan de oppervlakte en koppelt script-gedrag aan apparaat-, echt-IP- en VPN/proxy-signalen, zodat een gemarkeerde wijziging met context komt in plaats van een kale hash-mismatch.

Omdat het kijkt naar wat executeerde in plaats van wat een scanner te zien kreeg, vangt cside hetzelfde browser-bewijs dat een e-skimming-aanvaller probeert te verbergen. Dat lijnt de compliance-workflow uit met de echte dreiging. Voor de operationele rollout en de QSA-reporting-weergave gaan de gidsen hieronder dieper.

Verder lezen op cside

Met ingang van 2026-06-18, behandel dit als operationele richtlijn, niet als juridisch advies. Bevestig de exacte control-tekst met je QSA, juridisch adviseur of risk-owner.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Nee. Ze staan naast elkaar maar besturen verschillend werk. 6.4.3 is een script-management-control: je bepaalt welke scripts zijn toegestaan op een betaalpagina, legt vast waarom, en verzekert de integriteit van elk ervan. 11.6.1 is een change-detection-control: een mechanisme bewaakt de geleverde pagina en zijn HTTP-security-headers op ongeautoriseerde wijziging en alerteert personeel. Je kunt een 6.4.3-inventaris-review doorstaan en toch 11.6.1 falen omdat niets productie in de gaten hield toen een vendor een stille update pushte.

Nee. Een processor beveiligt zijn eigen gehoste velden of iframe. 6.4.3 en 11.6.1 hechten aan de merchant-pagina die dat iframe framed, omdat je analytics, tag-manager, A/B-tooling en chat-widget allemaal in dezelfde top-level-browser-context executyren en gemanipuleerd kunnen worden. De Attestation of Compliance van de processor brengt die controls niet over naar je pagina. Je behoudt de inventaris, de autorisatie en de change-detection op alles wat je serveert.

11.6.1 wijst naar requirement 12.3.1, waarmee je de detectie-en-alert-frequentie uit een gedocumenteerde targeted risk analysis mag vastleggen, met een vloer van minstens eens per zeven dagen. Een risicoanalyse die wekelijkse checks rechtvaardigt is op papier acceptabel, maar een manipulatie die na één scan verschijnt en vóór de volgende wordt schoongemaakt laat geen spoor na in een periodiek record. Continue monitoring sluit dat venster en produceert een timestamped log in plaats van een wekelijkse snapshot.

Een Content-Security-Policy bepaalt waar een script vandaan mag laden, niet wat een reeds-toegestaan script doet zodra het draait, en een aanvaller die de CSP-header kan verzwakken of strippen zet de control uit. Een externe crawler scant vanaf een vaste set cloud-IP's, dus een skimmer kan schone code serveren aan de scanner en de kwaadaardige payload aan een echte shopper. 11.6.1 vraagt wat de consumentenbrowser ontving, en daarom laten beide controls een gat dat browserlaag-monitoring vult.

Monitor en Beveilig Je Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo