shop.acme-demo.example
shop.acme-demo.example is serving a live secrets file and an open admin panel to the entire internet - no login, no exploit, just a GET request. Both are fixable today; both are exactly what an attacker scans for first. This is an example report; scan your own domain to get yours.
What an attacker would notice
3Exposed: /.env file readable over HTTP
SC-02001DATABASE_URL=postgres://app:****@db.shop-acme.internal:5432/shop_prod STRIPE_SECRET_KEY=sk_live_****REDACTED**** SESSION_SECRET=****REDACTED**** SMTP_PASSWORD=****REDACTED****
# Nginx: refuse any path that starts with a dot
location ~ /\. {
deny all;
return 404;
}Exposed admin panel at /admin (no auth wall)
SC-03010# Nginx: only let known networks reach the admin panel
location /admin {
allow 203.0.113.0/24; # office
allow 198.51.100.7; # VPN egress
deny all;
}Subdomain takeover risk: dangling CNAME on assets.shop.acme-demo.example
SC-09020# Delete the record whose target is no longer claimed: assets CNAME acme-demo-assets.s3-website.amazonaws.com. ; <- remove
How an attacker could chain these
attack pathMissing HSTS header
SC-01001Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Content-Security-Policy allows 'unsafe-inline'
SC-01005Content-Security-Policy: script-src 'self' 'nonce-<per-request>'; object-src 'none'; base-uri 'self'
Cookies missing Secure / HttpOnly flags
SC-01018Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax; Path=/
Server technology disclosed in headers
SC-01012# Nginx server_tokens off; proxy_hide_header X-Powered-By;
[](https://surfacecheckr.com/r/demo)The badge stays live: re-scan and it updates itself, and it links back to this report.
Every finding is a deterministic, passive check - we read only what your site already serves to the public, and never send attack traffic. How the scanner works, and what we don't test →
That was someone else's site. What does yours look like?
Paste your domain below. The grade and the issue count are free, and you'll have it in a couple of minutes.
External, read-only scan. We only request public URLs - never log in, never send attack traffic.