DSP Watch

Security

Security designed for evidence that has to hold up in court.

DSP Watch stores the audit log a §512(c)(3) takedown depends on. Tenant isolation, signer attestation, evidence integrity and edge controls are built so a hostile re-upload, a leaked link or a tampered row can be detected and disproven. This page documents the controls; for our customer-facing trust posture see /trust.

Tenant isolation

How is workspace data kept separate?

Every row that belongs to a workspace is gated by Postgres row-level security. The isolation boundary lives in the database, not in the API, and is the same boundary auditors can verify with a SQL query.

Audit log

How is the audit log made tamper-evident?

Each audit_log row is hashed with SHA-256 over its content plus the previous row's hash. The chain is verifiable end to end and replayable from a single SQL query.

Evidence integrity

How is evidence pinned to a takedown?

Evidence PDFs are content-addressable by SHA-256. Identical bundles collapse to one object; any byte changed produces a new address. The digest is the link between the PDF, the action row and the audit log entry that records its submission.

Signer attestation

How do we prove a human signed the takedown?

A takedown is signed by a person attesting under penalty of perjury. We bind that attestation to a single action with an MFA-fresh JWT that cannot be replayed.

Edge and transport

What protects traffic between Worker, Fly and R2?

Every public ingress is fronted by Cloudflare. Internal traffic stays on Fly's private flycast network. Object access uses scoped, short-lived signed URLs. Inter-service calls are signed JWTs with replay protection.

Sub-processors

Who processes data on our behalf?

These vendors process customer data as part of normal operation. We notify customers in writing at least 30 days before adding a new sub-processor that handles workspace content.

Vendor Purpose Region
Cloudflare, Inc. Edge CDN, WAF, Workers runtime, R2 object storage, Pages hosting. Global edge; metadata in US/EU.
Supabase, Inc. Managed Postgres (primary data store), auth, RLS, PostgREST. AP-Northeast-1 (Tokyo).
Fly.io, Inc. Compute for evidence rendering, DSP scanners and adapter workers. arn (Stockholm) primary; .flycast private network.
Stripe, Inc. Subscription billing, Checkout, customer portal, webhooks. US; PCI DSS Level 1.
Resend, Inc. Transactional email — verification, attestation, counter-notice warnings. US.

Vulnerability disclosure

Found something? Tell us.

We welcome responsible disclosure from security researchers. Email security@dspwatch.com with a description of the issue, reproduction steps and any proof-of-concept. We acknowledge reports within 2 business days and aim to triage within 5. Please do not test against live customer workspaces or run automated scanners that generate sustained load against our edge — reach out first and we will help you reproduce safely.

Reporting in scope

dspwatch.com, app.dspwatch.com, dsp-watch-api.jeeb.workers.dev and any subdomain reachable from a published DSP Watch link. Out of scope: third-party DSPs we file takedowns with.

Email security@dspwatch.com