Overview
The Browser Automation pack provides safety guardrails for AI agents that control web browsers, perform web scraping, or automate web interactions. It prevents navigation to dangerous URLs, blocks password field interactions, and requires approval for form submissions. Use this pack for:- Web scraping agents
- Browser automation tools (Playwright, Puppeteer, Selenium)
- RPA (Robotic Process Automation) systems
- Testing agents
- Data extraction tools
Complete Policy
browser-automation.yaml
Rules Explained
1. Block Malicious URL Navigation
Rule ID:browser-automation-block-malicious-urls
What it does: Prevents the browser from navigating to dangerous URL schemes and local network addresses.
Blocked URL patterns:
javascript:- Execute JavaScript in the page contextdata:- Data URLs (can contain malicious scripts)file:- Local filesystem access- URLs containing
localhost- Local server access - URLs containing
127.0.0.1- Loopback address
2. Block Password Field Input
Rule ID:browser-automation-block-password-input
What it does: Prevents typing into password fields.
Detection methods:
- Selector contains
password(e.g.,input[type="password"]) - Field name contains
password - Attribute name contains
password
- Security risk - AI agents should never handle user passwords
- Credential theft - Prevents accidental credential exposure in logs
- Compliance - Violates security best practices (PCI DSS, SOC 2)
3. Block Automated Form Submission
Rule ID:browser-automation-block-form-submissions
What it does: Requires human approval before submitting forms or pressing Enter.
Detected patterns:
- Clicking submit buttons (
type="submit") - Clicking buttons with selector
button[type=submit] - Pressing the Enter key
- Irreversible actions - Form submissions often trigger payments, orders, data deletion
- Data integrity - Prevents submitting incomplete/incorrect forms
- Rate limiting - Avoids triggering anti-bot protections
- Legal compliance - Ensures human oversight for legally binding actions
Usage Example
Basic Setup
veto.config.yaml
With Playwright
With Puppeteer
Customization
Allow Localhost for Testing
If your agent tests local development servers:Allow Specific Domains Only
Restrict navigation to trusted domains:Auto-Allow Form Submissions for Read-Only Sites
If scraping public data that doesn’t have consequences:Add Download Protection
Prevent downloading potentially malicious files:Rate Limit Navigation
Prevent excessive requests that might trigger anti-bot protections:Real-World Scenarios
E-commerce Price Scraper
Automated Testing Agent
custom-testing-rules.yaml
Job Application Bot
job-application-rules.yaml
Testing
Limitations
Related Resources
Policy Pack Overview
Learn about all available policy packs
Communication Pack
Additional protection for messaging during automation
Human-in-the-Loop Guide
Set up approval workflows for form submissions
Playwright Integration
Complete guide for Playwright + Veto

