Trust & security

Security at ScriptProof

How we protect your data — and why we never touch your customers’. A security product has to hold itself to the standard it monitors. This page describes, in plain terms, exactly what we store, how the platform is built, and where our limits are.

No cardholder data, ever No agent required Outside-in monitoring only

Padlock resting on a laptop keyboard, representing encrypted, locked-down data

The core promise

Data we handle vs. data we never touch

ScriptProof is deliberately designed so that the most sensitive data on your site — your customers’ — has no path into our systems.

What we store

  • Your account email

    Verified at signup before any account exists. Used for alerts and login only.

  • Site URLs you register

    The payment-page addresses you explicitly ask us to monitor, after domain verification.

  • Script metadata & SHA-256 hashes

    Script URLs, sizes and content fingerprints — never the pages your customers type into.

  • HTTP response headers

    The security headers your pages serve (CSP, HSTS, etc.), snapshotted per scan.

  • Alerts & evidence records

    Change events, before/after hashes, authorizations and the monthly Evidence Pack.

What we never touch

  • Cardholder data

    No PANs, no CVVs, no expiry dates. The crawler never submits forms or touches payment fields.

  • Your customers’ PII

    No names, addresses, or emails of your shoppers ever reach our systems.

  • Form input of any kind

    ScriptProofBot only reads pages the way a browser loads them — it never types or clicks.

  • Cookies or sessions of your shoppers

    We monitor from the outside. Nothing runs inside your customers’ browsing sessions.

Application security

Controls built into the product

Every claim below describes a control that exists in our codebase today — not an aspiration.

Verified-email-only accounts

Every signup email is vetted before an account row exists: disposable-domain blocklist, provider-typo detection, and a live DNS/MX check on company domains — then a verification link proves mailbox ownership.

Strong password policy

Minimum 10 characters, and passwords that appear on common cracking wordlists are rejected outright at signup, before they are ever hashed.

Database-backed rate limiting

Login, signup and password-reset endpoints have tight per-endpoint limits stored in the database — they survive restarts and are shared across instances.

Hardened session cookies

Sessions are managed by Better Auth with secure, server-issued cookies. No tokens in local storage, no roll-your-own session logic.

Strict security headers

Every response ships HSTS, X-Frame-Options DENY, X-Content-Type-Options nosniff, a strict Referrer-Policy and a locked-down Permissions-Policy.

SSRF-guarded crawling

Every outbound fetch to a customer URL resolves DNS first and refuses private or internal IPs — and every redirect hop is re-validated before it is followed.

Domain verification before monitoring

We never scan a site until you prove you control it with a DNS record or meta tag. Nobody can point ScriptProof at a domain they do not own.

TLS for all traffic

All traffic to and from ScriptProof is encrypted in transit, and HSTS with a two-year max-age instructs browsers to never downgrade.

Infrastructure & operations

Where your data lives

We would rather tell you exactly how it works than hide behind a badge wall.

Single-tenant VPS deployment

ScriptProof runs on dedicated single-tenant infrastructure — your monitoring data does not sit in a shared multi-tenant application pool.

PostgreSQL with role-based access

All data lives in PostgreSQL with role-based database access. Backups are taken at the database layer.

Secrets outside the repository

Credentials and signing secrets are kept in environment files outside the codebase — never committed, never bundled into the client.

SOC 2: on the roadmap, not claimed

We are not SOC 2 certified today and will not pretend otherwise. A formal audit is on our roadmap; until then, this page describes exactly what we do.

Transparent crawling

Our crawler never hides. It identifies itself with the honest user agent ScriptProofBot/1.0 pointing back to a public page that documents exactly what it does, how often it fetches, and how to report unexpected traffic. It only visits domains whose ownership has been verified, never submits forms, and never interacts with payment fields.

About ScriptProofBot

Responsible disclosure

Found a vulnerability? Tell us.

If you believe you have found a security issue in ScriptProof, email security@ our domain with the details and steps to reproduce. We commit to acknowledging every good-faith report within 72 hours and to keeping you informed while we investigate and fix. We do not currently run a paid bug bounty program, and we ask that you do not access data that is not yours or degrade the service while testing.

PCI DSS v4.0.1

Supports req. 6.4.3 controls

Req. 11.6.1

Tamper & change detection

SHA-256

Every script fingerprinted

TLS encrypted

All monitoring traffic

Zero card data

Never requested or stored

Server-side

No load on your checkout

ScriptProof is a monitoring and evidence tool. It is not a Qualified Security Assessor (QSA) service and does not certify PCI DSS compliance. Consult your acquirer or a QSA for validation requirements.