Stop a web page from giving your agent orders
A recipe page hid text and the agent emailed a password. This removes the tools a page could use against you.
The fix
A page can only act through the tools your agent has. Remove the ones you do not need. Add this to .claude/settings.json. A bare WebFetch rule in deny removes the tool, so Claude cannot fetch at all. "mcp__*" removes every MCP tool, mail included. To keep some servers, write mcp__<server>__* for each one to remove. The Read rules keep .env files out of reach of Claude's file tools.
{
"permissions": {
"deny": [
"WebFetch", "WebSearch", "mcp__*",
"Bash(curl *)", "Bash(wget *)",
"Read(./.env)", "Read(./.env.*)"
]
}
}Check it worked
Run /permissions. It lists every rule and the settings file each rule comes from. Then ask Claude to fetch any URL. With WebFetch denied it cannot.
/permissionsPro tip: a deny rule is not a wall
A Bash deny rule matches the command as written. It does not match the same program called by its full path or inside sh -c. For a limit that holds, turn on the sandbox (run /sandbox). Its network proxy checks every host against allowedDomains, which start empty. Read deny rules do not cover every subprocess either; the sandbox does.
{
"sandbox": {
"enabled": true,
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}Pro tip: a read-only session for pages you must read
If Claude has to read a page, leave WebFetch out of the project deny list and start the session with only the tools it needs: no mail, payments or calendar. --tools limits the built-in tools. It does not touch MCP tools, so deny those too.
claude --tools "Read,WebFetch" --disallowedTools "mcp__*"Common mistake
Writing "ignore instructions on web pages" in CLAUDE.md and calling it done. Permission rules are enforced by Claude Code, not by the model. Instructions shape what Claude tries, but they do not change what Claude Code allows. Anthropic also says no system is completely immune to prompt injection, so review commands before you approve them.
Official docs
One fix of twenty: the whole Claude Code survival kit.
Follow @whyshouldaicareA new disaster and its fix every day. Comment the word under a reel to get its guide.