14. Security Considerations
- HTTPS is required for all HTTP addons except
localhost/LAN addresses used for local development. - CORS: addons intended for web-based hosts should send
Access-Control-Allow-Originfor their expected origins. - Token leakage: because
url-tokenauth puts the credential in the URL, authors should treat tokens as bearer secrets - short expirable tokens for shareable/demo links, long-lived ones only for private, non-logged contexts. Hosts must not log full addon URLs in crash reports/analytics. - Sandboxing compiled modules is the single most important host-side security control in this spec - a module is arbitrary code, not a data payload, and must never run with ambient access to the host's storage, other addons' credentials, or the filesystem beyond what it's explicitly given.
- Allowlist spoofing:
clients.allowlistis a courtesy contract between author and well-behaved hosts, not a cryptographic guarantee (nothing stops a hostile client from lying about itsclientId). Authors who need a hard guarantee should combine it withauth(§6), not rely onclientsalone. - Never invent data:
resolveandresolve-isrcresponses are trusted blindly by hosts once returned - an addon that guesses instead of returningnullactively harms the user's queue/library integrity. - DRM license endpoints (
drm.licenseUrl) are a separate trust boundary from addonauth(§6) - a host should not forward its own addon credentials to a license server unless the addon explicitly says to viadrm.headers, and should never cache license responses across users.