Leveranciersmachtigingen
Bepaal wat de scripts van elke leverancier op je site mogen doen. Ontdek wat elke machtiging dekt en wat blokkeren voorkomt.
De weergave Dependencies (afhankelijkheden) in het cside-dashboard toont elke leverancier en elk domein dat scripts aan je site levert. Open een leverancier om het machtigingenraster te zien, ingedeeld in zes categorieën: Resource types, Sensitive APIs, Storage, Event listeners, Form field access en Other. Elke functionaliteit heeft een Allow- en een Block-bediening; is geen van beide gekozen, dan is de machtiging niet ingesteld en behoudt de leverancier zijn standaardgedrag.
Deze pagina legt elke machtiging uit: wat ze dekt en wat blokkeren voorkomt.
Hoe machtigingen werken
Elke machtiging heeft drie statussen:
- Allow (groen vinkje): de scripts van de leverancier kunnen deze functionaliteit gebruiken.
- Block (rood schild): cside voorkomt dat de scripts van de leverancier deze functionaliteit gebruiken.
- Unset (standaard): de leverancier behoudt zijn normale gedrag en cside blijft monitoren wat hij doet. Beweeg je over een geselecteerde bediening, dan verschijnt Clear; klik erop om de machtiging naar deze status terug te zetten.
Machtigingen gelden per leverancier, voor je hele team. Wanneer een script niet aan een bekende leverancier wordt gekoppeld, kun je dezelfde machtigingen op het domein ervan instellen.
Wanneer je een machtiging blokkeert, handhaaft cside je beslissing in de browser. Geblokkeerde pogingen worden nog steeds geregistreerd, zodat je kunt zien wat een leverancier probeerde te doen nadat je hem hebt vergrendeld.
Zie machtigingen als least privilege voor derden: elke leverancier krijgt alleen de functionaliteit die hij nodig heeft om zijn werk te doen.
De “Used”-badge
Naast een machtiging betekent een blauwe Used-badge dat cside daadwerkelijk heeft waargenomen dat de scripts van die leverancier deze functionaliteit gebruikten. Dit is puur informatief: het verandert of bepaalt de Allow/Block-status niet, en een functionaliteit kan Unset zijn terwijl deze toch als Used wordt weergegeven. Gebruik dit samen met “Bekijk het geregistreerde gedrag van de leverancier” hieronder om te bepalen wat veilig te blokkeren is.
Resource types
Deze machtigingen bepalen wat de scripts van een leverancier op je pagina’s kunnen laden, insluiten of uitvoeren.
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| JavaScript | Het laden en uitvoeren van JavaScript, inclusief extra code die tijdens runtime via scripttags wordt binnengehaald | Verhindert dat de leverancier nieuwe, niet-beoordeelde code binnenhaalt nadat de pagina is geladen. Zo escaleert een gecompromitteerde leverancier doorgaans een aanval. |
| Network requests | Het versturen en ophalen van data over het netwerk met fetch en XHR | Verhindert dat de leverancier data vanuit de browser naar zijn eigen servers stuurt. Dit is het belangrijkste kanaal voor data-exfiltratie. |
| Frames | Het insluiten van iframes en andere geneste pagina’s | Stopt verborgen iframe-overlays, valse inlogprompts en UI-injectie in clickjacking-stijl. |
| Objects | Het insluiten van plugincontent zoals <object> en <embed> | Stopt legacy plugincontent, een oud maar nog steeds misbruikt injectiepad. |
| Workers | Het uitvoeren van web workers en service workers | Stopt achtergrondscripts die uit het zicht draaien, verzoeken onderscheppen of blijven doorwerken nadat de gebruiker de pagina heeft verlaten. |
| Media | Het laden van audio en video | Stopt het laden van ongewenste audio of video, inclusief media die voor tracking of advertentiefraude wordt gebruikt. |
| Stylesheets | Het laden van externe CSS-stylesheets | Stopt stijlinjectie die pagina-elementen kan verbergen, valse UI over de pagina kan leggen of getypte data via CSS-selectors kan lekken. |
| Prefetch | Het prefetchen en preloaden van resources | Stopt het speculatief laden van resources van de leverancier, wat signalen over surfgedrag kan lekken voordat een gebruiker interactie heeft. |
| Manifests | Het laden van web app manifests | Verhindert dat de leverancier een manifest meelevert dat verandert hoe je site zich als app installeert of gedraagt. |
| Images | Het laden van externe afbeeldingen | Stopt het laden van afbeeldingen, inclusief tracking pixels: kleine afbeeldingen die worden gebruikt om data naar buiten te sturen. |
| Fonts | Het laden van externe fonts | Stopt het laden van fonts van de leverancier, een stil kanaal voor tracking en fingerprinting. |
Sensitive APIs
Deze machtigingen bepalen de toegang tot apparaathardware en tot browser-API’s die strings omzetten in uitvoerbare code.
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| Camera | Toegang tot de camera van het apparaat | Verhindert dat scripts cameratoegang aanvragen, zodat gebruikers nooit een prompt te zien krijgen die ze per ongeluk zouden kunnen accepteren. |
| Screen capture | Het opnemen van het scherm of een venster | Verhindert dat scripts schermopname aanvragen, wat alles kan blootleggen wat zichtbaar is op het scherm van de gebruiker. |
| Location | Het uitlezen van de geografische locatie van de bezoeker | Verhindert dat scripts de fysieke locatie van je gebruikers opvragen. |
| Microphone | Toegang tot de microfoon van het apparaat | Verhindert dat scripts microfoontoegang aanvragen en audio opnemen. |
| Eval | Het uitvoeren van strings als code met eval() | Stopt een veelgebruikte obfuscatietechniek: skimmers verbergen hun echte payload vaak in een string en voeren die uit met eval(). |
| Function constructor | Het uitvoeren van strings als code met de Function-constructor | Stopt de andere belangrijke manier om een string als code uit te voeren, en sluit zo het gat dat overblijft wanneer alleen eval() is geblokkeerd. |
| document.write | Het herschrijven van de pagina met document.write | Verhindert dat de leverancier willekeurige markup en scripts rechtstreeks in het document injecteert terwijl het laadt. |
| Inline frames | Het injecteren van inline frame-inhoud via srcdoc | Verhindert dat de leverancier frames maakt waarvan de inhoud uit een string komt in plaats van een URL, een manier om code binnen te smokkelen die geen enkele host-allowlist dekt. |
Storage
Deze machtigingen bepalen de toegang tot data die in de browser is opgeslagen.
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| Cookies | Het lezen en schrijven van cookies | Verhindert dat de leverancier sessie-identifiers of tokens leest en zijn eigen trackingcookies plaatst. |
| Local storage | Het lezen en schrijven van persistente browseropslag | Stopt toegang tot persistente data, die vaak gebruikersidentifiers en in de cache bewaarde persoonlijke informatie bevat. |
| Session storage | Het lezen en schrijven van browseropslag per tabblad | Stopt toegang tot sessiedata per tabblad, zoals de status van een lopende checkout. |
| IndexedDB | Het lezen en schrijven van IndexedDB-databases | Stopt toegang tot gestructureerde browserdatabases, waarin applicaties vaak grotere hoeveelheden gebruikersdata cachen. |
Event listeners
Deze machtigingen bepalen of een leverancier kan observeren hoe gebruikers met je pagina’s omgaan.
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| Clicks | Het volgen waar bezoekers klikken | Stopt kliktracking op je pagina’s, inclusief het vastleggen van wat gebruikers aantikken en selecteren. |
| Keystrokes | Het volgen wat bezoekers typen | Stopt keylogging. Een script dat naar toetsaanslagen luistert, kan alles vastleggen wat een gebruiker typt, inclusief inloggegevens en kaartnummers. |
Form field access
Deze machtigingen bepalen welke formuliervelden de scripts van een leverancier kunnen lezen. Ze zijn essentieel voor het voorkomen van diefstal van formulierdata, inclusief skimming in Magecart-stijl, en ondersteunen de vereisten 6.4.3 en 11.6.1 van PCI DSS 4.0.1 voor betaalpagina’s.
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| Email fields | E-mailadresvelden | Stopt het verzamelen van e-mailadressen die je gebruikers typen. |
| File uploads | Bestandsuploadvelden | Stopt toegang tot bestanden die gebruikers bijvoegen, zoals identiteitsdocumenten of afschriften. |
| Password fields | Wachtwoordvelden | Stopt het buitmaken van inloggegevens uit inlog- en registratieformulieren. |
| Hidden fields | Verborgen formuliervelden | Stopt het lezen van verborgen invoervelden, die vaak sessietokens, CSRF-tokens of interne ID’s bevatten. |
| Address fields | Adresvelden | Stopt het verzamelen van woon- en verzendadressen. |
| Search fields | Zoekvelden | Stopt het vastleggen van wat gebruikers op je site zoeken. |
| Phone fields | Telefoonnummervelden | Stopt het verzamelen van telefoonnummers. |
| URL fields | URL-velden | Stopt het lezen van URL’s die gebruikers in formulieren invoeren. |
| Name fields | Naamvelden | Stopt het verzamelen van persoonsnamen. |
| One-time codes | Velden voor eenmalige inlogcodes | Stopt diefstal van eenmalige codes, die aanvallers gebruiken om MFA te omzeilen. |
| Birthday fields | Geboortedatumvelden | Stopt het verzamelen van geboortedata, een cruciaal gegeven bij identiteitsdiefstal. |
| Sex/gender fields | Velden voor geslacht en gender | Stopt het verzamelen van gevoelige demografische data. |
| Credit card fields | Creditcardvelden | Stopt card skimming: scripts die kaartnummers lezen terwijl gebruikers ze bij het afrekenen typen. |
| Non-sensitive form access | Formuliervelden zonder gevoelige data | De algemene formuliermachtiging. Blokkeren verhindert dat de leverancier formuliervelden leest die niet onder een specifiekere machtiging hierboven vallen. |
Other
| Machtiging | Wat het dekt | Wat blokkeren voorkomt |
|---|---|---|
| Notifications | Het tonen van browsernotificaties | Stopt notificatieprompts en pushspam van de leverancier. |
| Full screen | Het omschakelen van de pagina naar schermvullende weergave | Stopt schermvullende overnames die worden gebruikt om browser-UI in phishing-overlays na te bootsen. |
| Payments | Het openen van het betaalvenster van de browser | Verhindert dat de leverancier het betaalvenster van de browser aanroept of betaalmogelijkheden aftast. |
| Browser history | Het wijzigen van de browsegeschiedenis van de bezoeker | Stopt URL-manipulatie die kan verhullen op welke pagina een gebruiker werkelijk zit of de terugknop kan saboteren. |
| Clipboard | Het lezen en schrijven van het klembord | Verhindert dat scripts lezen wat gebruikers elders hebben gekopieerd, zoals wachtwoorden of walletadressen, en stopt klembordkaping, zoals het vervangen van een gekopieerd betaaladres door dat van een aanvaller. |
| Send messages | Het versturen van berichten tussen frames met postMessage | Verhindert dat de leverancier data doorgeeft aan andere frames, een gangbare manier om geskimde data naar een iframe onder controle van een aanvaller te verplaatsen. |
| Receive messages | Het luisteren naar berichten van andere frames | Verhindert dat de leverancier instructies of data ontvangt van andere frames op de pagina. |
| Worker messages | Het uitwisselen van berichten met web workers | Verhindert dat de leverancier data van en naar achtergrondworkers verplaatst, waar die moeilijker te observeren is. |
Kiezen wat je blokkeert
Je hoeft op dag één geen 40 beslissingen per leverancier te nemen. Een praktische aanpak:
- Begin met functionaliteit die de leverancier helemaal niet zou moeten gebruiken. De meeste leveranciers hebben toetsaanslagen, wachtwoordvelden, creditcardvelden,
eval()of het klembord nooit nodig. Die blokkeren heeft zelden invloed op de functionaliteit. - Bekijk het geregistreerde gedrag van de leverancier. De weergave Dependencies toont wat elke leverancier daadwerkelijk op je site doet. Als een leverancier een functionaliteit nooit heeft gebruikt, is het risico van blokkeren laag.
- Zet de pagina’s met de data op slot. Geef in checkout- en inlogflows prioriteit aan de machtigingen voor formuliervelden en Keystrokes.
- Houd rapportages na het blokkeren in de gaten. Geblokkeerde pogingen worden nog steeds geregistreerd. Een leverancier die herhaaldelijk iets probeert wat je hebt geblokkeerd, is het onderzoeken waard.
Zie je Dependencies nog niet in je dashboard? De functie wordt geleidelijk uitgerold. Neem contact op met support@cside.dev om deze voor je team in te schakelen.
Gerelateerde pagina’s
- Dreigingsdetectie: hoe cside kwaadaardige scripts automatisch identificeert
- Kwetsbaarheidsdetectie: hoe cside scripts met bekende kwetsbaarheden markeert
- PCI DSS / PCI Shield: scriptvereisten voor betaalpagina’s
- Auditlogs: volg configuratiewijzigingen die je team heeft doorgevoerd
Thanks for your feedback!