Security review capabilities
| Area | What this helps you verify |
|---|---|
| Permissions scope | Requested capabilities are minimal and intentional |
| Content-script safety | Page-context behavior avoids unsafe injection patterns |
| Web-accessible resources (WAR) exposure | Only required assets are externally readable |
| Message boundaries | The extension validates privileged actions and checks senders |
| Release hygiene | Continuous integration (CI) and dependency checks catch regressions early |
Manifest and permissions
- Request only permissions you need.
- Avoid broad host permissions unless required.
- Prefer optional permissions for non-core capabilities.
- Re-check
web_accessible_resourcesscope after feature changes.
Content scripts
- Default to the isolated world (the sandboxed execution context) unless you strictly require MAIN world access to the page’s JavaScript environment.
- Keep selectors and DOM mutations scoped to known targets.
- Sanitize untrusted page data before rendering or storing.
- Avoid injecting executable strings into page contexts.
Web-accessible resources
- Keep WAR entries explicit and minimal.
- Avoid wildcard
resources: ["*"]patterns. - Restrict
matchesto required domains. - Use runtime URL helpers (
runtime.getURL) for asset access.
Messaging and data flow
- Validate message payload shape before processing.
- Verify sender context for privileged operations.
- Avoid exposing privileged operations directly to page scripts.
- Keep boundary modules for content/background communication.
Build and release hygiene
- Run lint, type checks, and tests in CI.
- Review production bundle output for unexpected artifacts.
- Keep dependencies updated and remove unused packages.
- Rotate secrets and keep sensitive values out of client-exposed env vars.
Common high-risk anti-patterns
host_permissionswith broad wildcards that are not feature-criticalweb_accessible_resourcesexposing broad globs to<all_urls>- Message handlers that trust payloads without sender or schema checks
- Using MAIN-world scripts when you can use the isolated world instead
Quick pre-release pass
- Permission review
- WAR review
- Content script world review
- Messaging validation review
- CI green on target browser matrix
Next steps
- Review web-accessible resources.
- Review troubleshooting.

