Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Detector categories

There are 44 detector categories. Each can be enabled or disabled per engagement:

redactproxy rules disable india_pii.pan     # one subcategory
redactproxy rules disable india_pii         # every subcategory under it
redactproxy rules enable  india_pii.pan

The authoritative list for the build you are running is redactproxy rules show, which prints exactly these descriptions from the same source. This page is that list, grouped.

Warning

The four allowlist.* categories work backwards from the rest. Disabling one makes more get redacted, not less. See The allowlist categories below.

Full list

ai_providers

CategoryDetects
ai_providers.anthropicAnthropic API keys.
ai_providers.openaiOpenAI API keys.

allowlist

CategoryExempts from redaction
allowlist.security_testing_servicesOut-of-band/security-testing callback services (burpcollaborator.net, interact.sh, webhook.site, etc.); these are the tester’s OWN tooling, never the client’s.
allowlist.third_party_saasSpecific third-party vendor products a client’s own site actively integrates with (razorpay.com, zoho.in, engati.ai, etc.); see wellknown.go’s thirdPartySaaSDomains for the full list. This is a weaker judgment call than the other allowlist categories, since seeing one of these does reveal something about the client’s tech stack, just not the client’s identity. It is its own toggleable category for exactly that reason.
allowlist.web_infrastructureCommon third-party CDN/font/analytics/widget hosts (jsdelivr.net, googletagmanager.com, clarity.ms, recaptcha.net, etc.); these are embedded on almost any scanned website, client’s or not, and carry no client-identifying information in the hostname itself. See wellknown.go’s webInfrastructureDomains for the full list and what is deliberately excluded (customer-subdomain SaaS platforms like Zendesk and Okta, where the hostname itself is often the finding).
allowlist.wellknown_platformsWell-known public dev platforms (github.com, npmjs.com, pastebin.com, stackoverflow.com, etc.); see wellknown.go’s wellKnownPlatformDomains for the full list.

cicd

CategoryDetects
cicd.circleciCircleCI API tokens.
cicd.snykSnyk API tokens.
cicd.terraformTerraform Cloud/Enterprise API tokens.
cicd.vaultHashiCorp Vault tokens.

cloud

CategoryDetects
cloud.artifactoryJFrog Artifactory API tokens.
cloud.awsAWS access key IDs (AKIA/ASIA-prefixed) and secret access keys (the 40-char value, when labeled by a nearby keyword like aws_secret_access_key).
cloud.azure_storage_keyAzure Storage account keys.
cloud.cloudflareCloudflare API tokens.
cloud.digitaloceanDigitalOcean API tokens.
cloud.dockerhubDocker Hub access tokens.
cloud.google_api_keyGoogle API keys.

collab

CategoryDetects
collab.slack_tokenSlack API tokens.
collab.slack_webhookSlack incoming webhook URLs.

comms

CategoryDetects
comms.sendgridSendGrid API keys.
comms.twilioTwilio account SIDs.

contact

CategoryDetects
contact.emailEmail addresses.
contact.intl_phoneNon-NANP international phone numbers.
contact.phoneNANP-shaped (US/Canada) phone numbers.

india_pii

CategoryDetects
india_pii.aadhaarIndian Aadhaar numbers (12-digit, Verhoeff-checksum validated).
india_pii.panIndian PAN numbers (Permanent Account Number, 10-character alphanumeric).

network

CategoryDetects
network.domainDomain names and hostnames, bare or embedded in a URL.
network.ipv4IPv4 addresses.
network.ipv6IPv6 addresses.
network.macMAC addresses.

packages

CategoryDetects
packages.npmnpm access tokens.

payments

CategoryDetects
payments.razorpayRazorpay API keys.
payments.stripeStripe API keys.

secrets

CategoryDetects
secrets.bearer_tokenOpaque Bearer/API tokens following an Authorization header.
secrets.connection_stringDatabase/service connection strings with embedded credentials.
secrets.itsdangerous_tokenFlask itsdangerous-signed tokens (session/CSRF tokens).
secrets.jwtJSON Web Tokens (JWTs).
secrets.password_hashPassword hashes (MD5/NTLM/SHA-1/SHA-256), only when labeled by a nearby keyword, or in an Impacket secretsdump-style LM:NT pair.
secrets.pem_keyPEM-armored private key blocks.

vcs

CategoryDetects
vcs.bitbucketBitbucket app passwords/tokens.
vcs.githubGitHub personal access / OAuth tokens.
vcs.gitlabGitLab personal access tokens.

windows_ad

CategoryDetects
windows_ad.gpp_cpasswordGroup Policy Preferences cpassword values, trivially decryptable via Microsoft’s published MS14-025 AES key.
windows_ad.machine_account$-suffixed Active Directory machine/computer account names (e.g. WORKSTATION01$) in a secretsdump.py/pwdump line.

The allowlist categories

These four are exceptions, not detectors. They stop values from being redacted, so disabling one means more gets redacted, not less.

They exist because it is genuinely useful for Claude to recognize infrastructure that carries no client identity: that a domain is GitHub and it can therefore use the gh CLI, that a hostname is Google Tag Manager rather than client infrastructure, that a callback domain is Burp Collaborator and therefore your own tooling, likely an SSRF or RCE test. Tokenize those and Claude loses context it would otherwise have for free.

Most engagements should leave all four enabled. The one worth considering individually is allowlist.third_party_saas, since a vendor domain does fingerprint the client’s tech stack even though it does not name the client. Disable that one alone on an engagement where even that should stay hidden:

redactproxy rules disable allowlist.third_party_saas

rules show flags all four with a warning, and the proxy logs a distinct message when one is disabled, so the inverted meaning is never silent.

What is deliberately not detected

Some things are excluded on purpose, because a detector that fires on innocent text costs more than one that misses an edge case:

  • Bare apex domains on file-extension TLDs (.do, .ai, .rs, .sh, .py). main.rs and logo.ai are far more often filenames. Use rules block --domain for these.
  • Reserved and documentation values. example.com, RFC 5737 documentation IP ranges and similar are excluded, since they are not client data and tokenizing them just adds noise.
  • Names and prose, which have no shape at all. Use rules block.

See Known gaps for the full picture.

Adding a detector

New detectors are welcome, particularly for prose-shaped PII and for Windows/AD artifacts. See CONTRIBUTING.md’s “Adding a detector”.