Trust and safety at DNSPeek
A preview link sends your visitors’ requests to a server you name, so you should know what passes through DNSPeek and what stays. This page describes how the service works today. What previews can’t do is on the limitations page.
1.What we store about a preview link
For each link we keep what is needed to serve it:
- the link name, your domain, the new server’s IP address and ports, and the SSL mode;
- optional settings: an old site address for compares, a password (as a hash), an expiry date, the space it belongs to;
- who created it, in which workspace, and when. For a guest link without an account, the visitor’s IP address instead.
QA reports and visual compares keep what you ran them for, such as results and screenshots, in your workspace.
2.What we record when someone opens a preview
The preview proxy rewrites pages in memory on their way to the visitor and does not save page contents. For each request it logs the link, the status code, the response time, the visitor’s IP address and browser (user agent), and the time. This log is a rolling buffer: only about the latest 100,000 requests across the whole service are kept, older entries are dropped.
During a live compare session, the proxy also notes what each server answered (status, content type and caching and security headers) so it can point out what is worse on the new server. Page bodies, cookie values and request headers other than Referer and Sec-Fetch-Dest are never recorded, and these notes expire after 30 minutes.
3.Passwords and keys
- Account passwords and preview link passwords are stored as bcrypt hashes, never in plain text.
- API keys are stored as SHA-256 hashes and shown only once, when you create or rotate them.
- Login details you give a QA report for a protected site are stored encrypted and never shown again after saving.
- Password attempts on protected preview links are throttled, to stop guessing.
4.Previews stay out of search engines
Every response a preview link serves carries an X-Robots-Tag: noindex, nofollow header, replacing whatever the site itself sends. A preview of your site should never compete with the real one in search results.
5.Previews live on their own domain
Each preview gets its own subdomain on a separate domain from the DNSPeek dashboard, and cookies your server sets stay on that preview’s own address. Scripts on a previewed site therefore cannot reach your DNSPeek session or another link’s cookies.
6.How we stop abuse
- Every new link is checked against Google’s threat lists (Web Risk). A link whose domain is listed for phishing or malware is disabled; an optional page scan puts a preview on hold for review when it rates the page malicious. See Site security checks.
- We keep a blocklist of domains, IP addresses and ranges that previews may not use.
- Private network and loopback addresses are refused when a link is created, and the proxy checks every address again before it connects, so a preview cannot be pointed at an internal network.
- Guest links are rate limited: at most 5 an hour and one active link per IP address.
- Anyone can report a preview through the abuse report form; the rules are in our Acceptable Use Policy.
7.Protecting your account
- Two-factor authentication with an authenticator app and recovery codes, and passkeys.
- Security emails you cannot turn off: when two-factor authentication or your password changes, a passkey is added or removed, sessions are signed out, or a new device signs in.
- On team plans, IP allowlists limit a workspace to approved networks. See IP allowlists.
- The sign-in cookie is HttpOnly, so scripts on a page cannot read it.
8.Where the service runs
The dashboard, API, preview proxy and background workers run in containers on a server we administer ourselves. Requests to DNSPeek pass through Cloudflare, which provides DNS, TLS and protection against attacks. Accounts, links and billing records live in a managed PostgreSQL database at Supabase.
Error reports are stored by Sentry in its EU region (Frankfurt). Product analytics runs only with your consent and is stored by PostHog in the EU. Site visit statistics without cookies: IP address, country from Cloudflare, deleted after 90 days, never shared.
Current state of each part of the service: status page.
Need the exact hosting locations for a vendor or security review? Write to support@dnspeek.link.
9.Subprocessors
These companies process data on our behalf to run DNSPeek. Payment providers receive data only when you pay through them. The privacy page describes in more detail what each one receives.
| Company | What for | What it receives |
|---|---|---|
| Cloudflare | DNS, TLS and attack protection for our sites, delivery of email sent to our addresses, encrypted off-site backups, optional page scans of previews | Requests to our sites and API (IP address, browser), email sent to our addresses, encrypted backup files, addresses of scanned pages |
| Supabase | Managed PostgreSQL database | Account, workspace, link, report and billing records |
| Sentry | Error reports from the site, API and workers (EU region) | Error details, the page or request involved, browser and operating system |
| PostHog | Product analytics, only with your consent (EU) | Page paths and product events, your account id and plan when signed in, IP address and browser |
| Crisp | Support chat and the support inbox | Your messages and files, IP address and browser, and your name, email and account basics when signed in |
| Anthropic | AI replies in the support chat and a first review of abuse reports | Chat messages with the account details needed to answer, and the text of abuse reports; not used to train its models |
| Web Risk checks of preview links and QA reports, and Sign in with Google if you use it | Domains and page addresses being checked; your Google account email and name when you sign in with Google | |
| Email delivery provider | Account, security and notification emails | Your email address and the message |
| Payment providers | Payments through the providers offered at checkout: Stripe, Paddle, Lemon Squeezy, WayForPay or Cryptomus | What you enter on their payment page, plus your email, workspace and plan |
10.Backups and recovery
The database is backed up every 24 hours. The latest 14 backups stay on our server, together with a standby copy of the database refreshed from each one, so the service can switch to it if the main database is unavailable.
Encrypted copies are also kept off-site in Cloudflare R2: 14 daily, 8 weekly and 6 monthly. Every release that changes the database structure takes a fresh backup first, and restoring follows a written runbook.
Only the platform owners can download a backup, after confirming their identity again; every download is logged and emailed to all owners. Screenshots and report files are not backed up: they can be generated again.
11.Your data, your call
Download a JSON copy of your data or delete your account yourself in Settings → Data & privacy, without writing to support. Deleting your account removes your personal workspace with its links, reports and compares. See Export your data or delete your account.
If you stop paying, nothing is deleted: the workspace moves to the free plan and paid features pause. See What happens after a downgrade.
12.Reporting a security issue
Found a vulnerability in DNSPeek? Email support@dnspeek.link with the steps to reproduce it, the affected address and what an attacker could do.
- Test only with your own account and preview links.
- Don’t access, change or delete other people’s data, and stop as soon as you come across any.
- No denial of service, spam, social engineering or physical attacks.
- Give us reasonable time to fix the issue before you make it public.
We’ll confirm that we received your report and let you know when it’s fixed. This contact is also published in security.txt.
13.Data processing agreement
Business customers can get a data processing agreement (DPA) on request: write to support@dnspeek.link.
14.Policies and contact
Read our privacy & cookies page, terms of service and Acceptable Use Policy. Security or privacy question? Write to support@dnspeek.link.