| Version | Supported |
|---|---|
| 1.0.x | ✅ |
| 0.4.x | ✅ |
| < 0.4 | ❌ |
DOMGuard is designed with a local-first, privacy-first security model:
By default, DOMGuard only connects to localhost Chrome instances:
[chrome]
host = "127.0.0.1" # localhost only
port = 9222This means:
- No data leaves your machine
- No network exposure
- No authentication required (Chrome trusts localhost)
DOMGuard supports connecting to remote Chrome instances, but this introduces security risks:
[chrome]
host = "192.168.1.100" # Remote connection - USE WITH CAUTION
port = 9222Risks of remote connections:
| Risk | Description | Mitigation |
|---|---|---|
| No encryption | CDP uses WebSocket without TLS | Use SSH tunnel or VPN |
| No authentication | Chrome DevTools has no built-in auth | Firewall + network isolation |
| Command injection | Remote attacker could execute arbitrary JS | Restrict to trusted networks |
| Data exposure | Page content transmitted in cleartext | Encrypt network layer |
Recommended setup for remote debugging:
# Option 1: SSH tunnel (recommended)
ssh -L 9222:localhost:9222 user@remote-host
# Then connect to localhost:9222
# Option 2: VPN
# Ensure Chrome is only listening on VPN interface
# Option 3: Firewall rules
# Restrict port 9222 to specific IPs
iptables -A INPUT -p tcp --dport 9222 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9222 -j DROPDOMGuard automatically masks sensitive data in output:
# Input fields with type="password" are masked
domguard interact type "#password" "secret123"
# Output shows: Typed ******** into #passwordDOMGuard detects CAPTCHAs and warns before automation:
- reCAPTCHA v2/v3
- hCaptcha
- Cloudflare Turnstile
- Generic CAPTCHA patterns
Configure sites that should never be automated:
# .domguard/blocked_sites.toml
[[sites]]
pattern = "bank.example.com"
reason = "Financial institution - manual access only"- CSS selectors are validated before execution
- Coordinates are bounds-checked
- URLs are validated for format
- File paths are sanitized
- Always use the default localhost configuration
- Start Chrome with
--remote-debugging-port=9222 - Don't expose port 9222 to the network
- Use headless Chrome in isolated containers
- Don't persist session data between runs
- Use ephemeral browser profiles
- Rotate any stored credentials
- Never automate financial or sensitive sites
- Respect robots.txt and terms of service
- Implement rate limiting
- Log all automation actions
- Review automation scripts before deployment
If you discover a security vulnerability in DOMGuard:
- Do not open a public GitHub issue
- Email: security@guard8.ai
- Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will respond within 48 hours and work with you to address the issue.
Before going to production, verify:
- Chrome is only accessible from localhost (or properly tunneled)
- No sensitive credentials are hardcoded in workflows
- Session recordings don't contain sensitive data
- Blocked sites list includes all sensitive domains
- Network traffic is encrypted (SSH tunnel or VPN for remote)
- Automation logs are stored securely
- Access to DOMGuard is restricted to authorized users
- Added proper error handling for path operations
- Enhanced credential masking in output
- Added remote connection security warnings to config
- Initial security documentation
- Localhost-only default configuration
- CAPTCHA detection
- Blocked sites feature