Internal affairs

He checksthe locks too.

FAT Agent is a security tester as much as an SEO auditor. He looks at your site the way an attacker would, from the outside: headers, leaked keys, exposed files, cookies, certificates, DNS, email spoofing and consent. Then he tells you exactly what to change.

8secret types24sensitive paths40+security checks
FAT Agent kicking open a server room door as web pages with error marks fly past
Exhibit 06: the raid

What he checks

Every door, every window.

Presence is not enough. A Content-Security-Policy full of 'unsafe-inline' is a lock with the key in it, so he grades the quality of each defence, not just whether it exists.

Security headers

Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, Referrer-Policy, Permissions-Policy and X-Content-Type-Options.

  • CSP weakened by 'unsafe-inline', 'unsafe-eval' or wildcard sources
  • HSTS max-age too short, or missing includeSubDomains
  • Framing protection through frame-ancestors or X-Frame-Options

P1Missing Content-Security-Policy header

Keys left in the open

He reads your page source and inline scripts for credentials that should never ship to a browser.

  • Stripe live secret keys
  • AWS access key IDs
  • GitHub and Slack tokens
  • Anthropic and OpenAI API keys
  • Private key blocks
  • Google API keys (flagged to check restrictions)

P0Secret exposed in page source

The back door

An opt-in probe for files that leak from misconfigured servers. It is same-origin only, makes one request per path, and runs only with your go-ahead.

.env.env.local.env.production.git/config.git/HEAD.svn/entries.hg/requireswp-config.php.bakconfig.php.bak.aws/credentials.npmrc.dockerenvdocker-compose.ymlbackup.zipbackup.sqldb.sqldump.sqlphpinfo.phpinfo.phpserver-status.DS_Store.vscode/settings.jsonconfig.jsonsecurity.txt

P0Exposed sensitive path: /.env

Cookie flags

Every Set-Cookie header is checked for the three flags that stop theft and cross-site abuse.

  • Secure: never sent over plain HTTP
  • HttpOnly: out of reach of injected scripts
  • SameSite: blocks cross-site request forgery

P2Cookies set without HttpOnly

Other people's code

Third-party scripts are the most common way into a modern site. He checks what you load and what you leak about your stack.

  • Cross-origin scripts without Subresource Integrity
  • Source maps shipped to production
  • Server version disclosed in headers
  • Mixed content on HTTPS pages
  • target="_blank" links without noopener

P2Cross-origin scripts without Subresource Integrity

The foundations

The certificate and DNS records that everything else trusts.

  • SSL certificate invalid, missing or expiring soon
  • DNSSEC not enabled
  • No CAA record restricting who may issue certificates
  • HTTP/2 and CDN presence

P0SSL certificate invalid or missing

Spoofing protection

If your domain can be spoofed, your customers can be phished in your name.

  • SPF record
  • DKIM record
  • DMARC record, and a DMARC policy stuck on none

P1Missing DMARC record

Consent and privacy

Trackers that fire before consent are a legal risk as well as a trust one.

  • Tracking that loads before consent
  • No consent banner, privacy policy or cookie policy
  • No data controller information

P1Tracking may load before consent

Signs of a break-in

With Search Console connected he reads Google's own verdicts, and the page checks catch the tricks hacked sites get used for.

  • Search Console security issues and manual actions
  • Sneaky, conditional JavaScript redirects
  • Back button hijacking
  • Hidden text and injected spam

P0Security issue reported by Google

Rules of engagement

A tester, not a burglar.

Everything runs from the outside, the way a visitor or attacker sees your site, and nothing he does changes it.

Passive by default

Headers, page source, certificates and DNS come from normal requests. No logins, no form submissions, no load testing.

Probes on request

The exposed-files check only runs when you confirm it, for sites you own or are authorised to test. It never fuzzes: a fixed list, one request each.

Guard rails

Requests to private networks, localhost and cloud metadata addresses are blocked, so the crawler can't be turned against your own infrastructure.

Honest about limits

On Shopify or Wix you can't set security headers. He says so, scores it as a platform limit and tells you what you can do instead.

Priorities

What gets fixed first.

PriorityMeansSecurity examples
P0Drop everythingLive secret key in page source, exposed .env or .git, invalid certificate, Google-reported security issue
P1This weekNo CSP or HSTS, no DMARC, tracking before consent, sneaky redirects
P2This monthWeak CSP, cookies without HttpOnly or SameSite, scripts without SRI, source maps in production
P3PolishServer version disclosed, no security.txt, missing CAA record

Install

Put him on the case.

Inside Claude Code, run these two lines. Then point him at a site.

  1. /plugin marketplace add spruikco/fat-agent-skill
  2. /plugin install fat-agent@fat-agent-marketplace
  3. Run /fat-audit https://your-site.com, or just say "run FAT agent on my site".