Skip to main content
How permissions work
Language

Vendor Permissions

Control what each vendor's scripts can do on your site. Learn what every permission covers and what blocking it prevents.

The Dependencies view in the cside dashboard lists every vendor and domain delivering scripts to your site. Open a vendor to see its permission grid, organized into six categories: Resource types, Sensitive APIs, Storage, Event listeners, Form field access, and Other. Each capability has an Allow and a Block control; when neither is chosen the permission is unset and the vendor keeps its default behavior.

This page explains each permission, what it covers, and what blocking it prevents.

How permissions work

Each permission has three states:

  • Allow (green check): the vendor’s scripts can use this capability.
  • Block (red shield): cside prevents the vendor’s scripts from using this capability.
  • Unset (default): the vendor keeps its normal behavior and cside keeps monitoring what it does. Hovering a selected control shows Clear; click it to return the permission to this state.

Permissions apply per vendor, for your whole team. When a script is not matched to a known vendor, you can set the same permissions on its domain instead.

When you block a permission, cside enforces your decision in the browser. Blocked attempts are still recorded, so you can see what a vendor tried to do after you locked it down.

Think of permissions as least privilege for third parties: each vendor only gets the capabilities it needs to do its job.

The “Used” badge

Next to a permission, a blue Used badge means cside has actually observed that vendor’s scripts exercising that capability. It’s informational only: it doesn’t change or set the Allow/Block state, and a capability can be Unset while still showing as Used. Use it alongside “Check the vendor’s recorded behavior” below to decide what’s safe to block.

Resource types

These permissions control what a vendor’s scripts can load, embed, or run on your pages.

PermissionWhat it coversWhat blocking prevents
JavaScriptLoading and executing JavaScript, including additional code pulled in at runtime with script tagsStops the vendor from pulling in new, unreviewed code after the page loads. This is how a compromised vendor typically escalates an attack.
Network requestsSending and fetching data over the network with fetch and XHRStops the vendor from sending data out of the browser to its own servers. This is the main channel for data exfiltration.
FramesEmbedding iframes and other nested pagesStops hidden iframe overlays, fake login prompts, and clickjacking-style UI injection.
ObjectsEmbedding plugin content like <object> and <embed>Stops legacy plugin content, an old but still abused injection path.
WorkersRunning web workers and service workersStops background scripts that run out of sight, intercept requests, or keep working after the user leaves the page.
MediaLoading audio and videoStops unwanted audio or video loads, including media used for tracking or ad fraud.
StylesheetsLoading external CSS stylesheetsStops style injection that can hide page elements, overlay fake UI, or leak typed data through CSS selectors.
PrefetchPrefetching and preloading resourcesStops speculative loading of vendor resources, which can leak browsing signals before a user interacts.
ManifestsLoading web app manifestsStops the vendor from supplying a manifest that changes how your site installs or behaves as an app.
ImagesLoading external imagesStops image loads, including tracking pixels: tiny images used to beacon data out.
FontsLoading external fontsStops font loads from the vendor, a quiet channel for tracking and fingerprinting.

Sensitive APIs

These permissions control access to device hardware and to browser APIs that turn strings into running code.

PermissionWhat it coversWhat blocking prevents
CameraAccess to the device cameraStops scripts from requesting camera access, so users never see a prompt they might accept by mistake.
Screen captureRecording the screen or a windowStops scripts from requesting screen recording, which can expose anything visible on the user’s display.
LocationReading the visitor’s geographic locationStops scripts from requesting your users’ physical location.
MicrophoneAccess to the device microphoneStops scripts from requesting microphone access and recording audio.
EvalExecuting strings as code with eval()Stops a common obfuscation technique: skimmers often hide their real payload in a string and run it with eval().
Function constructorExecuting strings as code with the Function constructorStops the other main way to run a string as code, closing the loophole left when only eval() is blocked.
document.writeRewriting the page with document.writeStops the vendor from injecting arbitrary markup and scripts straight into the document while it loads.
Inline framesInjecting inline frame content via srcdocStops the vendor from creating frames whose content comes from a string instead of a URL, a way to smuggle in code that no host allowlist covers.

Storage

These permissions control access to data stored in the browser.

PermissionWhat it coversWhat blocking prevents
CookiesReading and writing cookiesStops the vendor from reading session identifiers or tokens, and from planting its own tracking cookies.
Local storageReading and writing persistent browser storageStops access to persisted data, which often includes user identifiers and cached personal information.
Session storageReading and writing per-tab browser storageStops access to per-tab session data, such as in-progress checkout state.
IndexedDBReading and writing IndexedDB databasesStops access to structured browser databases, where applications often cache larger sets of user data.

Event listeners

These permissions control whether a vendor can observe how users interact with your pages.

PermissionWhat it coversWhat blocking prevents
ClicksTracking where visitors clickStops click tracking across your pages, including capture of what users tap and select.
KeystrokesTracking what visitors typeStops keylogging. A script listening to keystrokes can capture everything a user types, including credentials and card numbers.

Form field access

These permissions control which form fields a vendor’s scripts can read. They are central to preventing form data theft, including Magecart-style skimming, and support PCI DSS 4.0.1 requirements 6.4.3 and 11.6.1 for payment pages.

PermissionWhat it coversWhat blocking prevents
Email fieldsEmail address inputsStops harvesting of email addresses your users type.
File uploadsFile upload inputsStops access to files users attach, such as ID documents or statements.
Password fieldsPassword inputsStops credential harvesting from login and signup forms.
Hidden fieldsHidden form fieldsStops reading of hidden inputs, which often hold session tokens, CSRF tokens, or internal IDs.
Address fieldsAddress inputsStops collection of home and shipping addresses.
Search fieldsSearch inputsStops capture of what users search for on your site.
Phone fieldsPhone number inputsStops harvesting of phone numbers.
URL fieldsURL inputsStops reading of URLs users enter into forms.
Name fieldsName inputsStops collection of personal names.
One-time codesOne-time login code inputsStops theft of one-time passcodes, which attackers use to defeat MFA.
Birthday fieldsDate-of-birth inputsStops collection of birth dates, a key identity theft data point.
Sex/gender fieldsSex and gender inputsStops collection of sensitive demographic data.
Credit card fieldsCredit card inputsStops card skimming: scripts reading card numbers as users type them at checkout.
Non-sensitive form accessForm fields that hold no sensitive dataThe general form permission. Blocking stops the vendor from reading form fields not covered by a more specific permission above.

Other

PermissionWhat it coversWhat blocking prevents
NotificationsShowing browser notificationsStops notification prompts and push spam from the vendor.
Full screenSwitching the page into full-screen modeStops full-screen takeovers used to imitate browser UI in phishing overlays.
PaymentsOpening the browser’s payment dialogStops the vendor from invoking the browser’s payment sheet or probing payment capabilities.
Browser historyChanging the visitor’s browsing historyStops URL manipulation that can disguise the page a user is really on or trap the back button.
ClipboardReading and writing the clipboardStops scripts from reading what users copied elsewhere, such as passwords or wallet addresses, and from clipboard hijacking, such as swapping a copied payment address for an attacker’s.
Send messagesSending cross-frame messages with postMessageStops the vendor from passing data to other frames, a common way to move skimmed data into an attacker-controlled iframe.
Receive messagesListening for cross-frame messagesStops the vendor from receiving instructions or data from other frames on the page.
Worker messagesExchanging messages with web workersStops the vendor from moving data to and from background workers, where it is harder to observe.

Choosing what to block

You don’t need to make 40 decisions per vendor on day one. A practical approach:

  1. Start with capabilities the vendor has no business using. Most vendors never require keystrokes, password fields, credit card fields, eval(), or the clipboard. Blocking those rarely affects functionality.
  2. Check the vendor’s recorded behavior. The Dependencies view shows what each vendor actually does on your site. If a vendor has never used a capability, blocking it carries low risk.
  3. Lock down the pages where the data is. On checkout and login flows, prioritize the form field permissions and Keystrokes.
  4. Watch reports after blocking. Blocked attempts are still recorded. A vendor repeatedly attempting something you blocked is worth investigating.

If you don’t see Dependencies in your dashboard yet, it is rolling out gradually. Contact support@cside.dev to enable it for your team.

Was this page helpful?