suPlayPurchasing GameBeer GameMinigamesPollSSA

Security Summary

Last updated: May 2026

Suplay Games & Tools is designed to collect as little personal data as possible — there are no accounts, no passwords, no email addresses, and no cookies. Most data lives in your own browser’s localStorage and never leaves your device unless attached to a game attempt you submit. This page summarises the additional measures we apply to protect what we do process.

Hosting and data residency

  • All application data is hosted on dedicated infrastructure operated by TransIP / team.blue in the Netherlands (EU).
  • No customer data is stored outside the EU.
  • The Node.js application is not directly exposed to the public internet; traffic arrives via an Apache reverse proxy over HTTPS only.

Transport and storage

  • TLS 1.2+ is enforced for all external traffic, with HTTP Strict Transport Security (HSTS) set at a long max-age including subdomains.
  • The database password is stored in a 0640 file readable only by the unprivileged service user.
  • Database backups are encrypted (GPG AES-256) with a key held by suPlay B.V. only, stored off-site in an EU region.

Application-level controls

  • All database queries use parameterised statements via the Prisma ORM; user input is never concatenated into SQL.
  • API request bodies are validated against strict Zod schemas; unknown fields are rejected.
  • The free-text fields (display name, BATNA card) are length-limited and rendered as text, never injected as HTML.
  • Security response headers are sent on every page: X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, Referrer-Policy: strict-origin-when-cross-origin, Strict-Transport-Security, and a restrictive Content-Security-Policy.
  • The site sets no third-party scripts and embeds no third-party iframes.

Operational controls

  • The Node.js process runs as an unprivileged systemd-supervised user (minigames), never as root.
  • SSH access to the host is key-only on a non-standard port; bruteforce attempts are throttled by fail2ban.
  • The host firewall permits only ports 80, 443, SSH and WireGuard inbound.
  • The database listens on localhost only; no remote connections are accepted.
  • OS packages are kept up to date with automatic security updates.

Logging

  • Standard server access logs are rotated after 14 days.
  • We do not log player display names, IP addresses linked to attempts, or game payload contents in long-term logs.

Reporting a vulnerability

If you believe you’ve found a security vulnerability, please report it to privacy@suplay.nl before disclosing publicly. We acknowledge reports within two working days.