Skip to content
Pditor

Trust

Security

How we protect the files you upload and the keys we hold.

Files in transit

Uploads and downloads use presigned URLs to our cloud object storage over HTTPS — your bytes never traverse our application servers. Each presigned URL is valid for 15 minutes and is single-purpose (read-only for downloads, write-only for uploads).

Files at rest

Stored with our cloud object-storage provider, with provider-managed encryption at rest. Tool outputs and inputs are deleted on a fixed schedule:

  • Free tier: 60 minutes after the job finishes.
  • Pro tier: 24 hours after the job finishes — more time to re-download a result or resume in the editor.
  • Abandoned uploads: within 60 minutes.

The sweep runs every 10 minutes on a scheduled background job. Each deletion is stamped on the Job row so the dashboard's audit log can show users proof their bytes left storage.

PDF passwords

Protect-PDF uses AES-256 encryption with the owner-password permissions you select. The Unlock tool only decrypts PDFs you already have the password for — no brute-force, no rainbow tables.

Passwords you type into the Protect or Unlock form are passed in-memory to our compute layer and never persisted to disk or the database.

Provider credentials

Our third-party AI provider keys live in an encrypted vault in our database. Keys are sealed with a per-deployment master password; the admin UI requires a separate reveal password before plaintext is ever shown — defence in depth against compromised admin sessions.

Authentication

Accounts use standard email + password authentication by default. Sessions are HttpOnly + Secure cookies. Billing is delegated to our payment provider as merchant of record — we never see your card number.

Responsible disclosure

Found a vulnerability? Email security@pditor.com. We respond within one business day, fix critical issues within seven days, and credit reporters in the changelog.

Out of scope: rate-limit bypasses on anonymous endpoints (intentional — quotas live on Pro accounts), social-engineering attacks on our team, denial-of-service tests against the public site.