Security-first platform

Security Overview

CisoDeck is built for cybersecurity consultants. We hold ourselves to the same standards you advise your clients on.

Last updated: June 1, 2026

Tenant isolation

Every account is completely isolated at the database level using PostgreSQL Row Level Security (RLS).

  • User A can never read, write, update, or delete User B’s data
  • All queries are automatically filtered by account membership
  • Isolation is enforced by the database engine, not application code alone
  • Automated cross-tenant attack tests verify isolation on every release

Authentication & access

  • Secure password hashing with bcrypt
  • HTTP-only, secure session cookies
  • PKCE flow for authentication code exchange
  • Automatic session refresh on every request
  • Role-based permissions: owner, admin, and member
  • Service role key never exposed to browser

Encryption

  • In transit: All connections use TLS 1.2+ encryption
  • At rest: Database and storage encrypted at rest (managed by Supabase/AWS)
  • Passwords: Hashed with bcrypt, never stored in plaintext

Storage & reports

  • All storage buckets (logos, PDFs) are private — no public URLs
  • File access requires signed URLs with short expiry (5 min for PDFs, 1 hr for logos)
  • Storage paths are account-scoped and enforced by RLS
  • Generated reports are immutable snapshots — cannot be updated or deleted
  • Report PDFs use insert-only storage policies

Audit & accountability

  • All significant actions are logged (client creation, assessments, reports, etc.)
  • Audit logs are append-only — cannot be updated or deleted
  • Logs are account-scoped — each account sees only its own logs
  • Sensitive data is stripped from log metadata

Architecture & validation

  • Server-rendered Next.js — no raw database credentials in the browser
  • All inputs validated server-side (types, ranges, enums, lengths)
  • Account ID derived server-side, never accepted from client
  • Parent-child integrity verified before cross-table operations
  • File uploads validated for MIME type and size on client and server

Data residency & compliance

Application data (database and file storage) is hosted in the EU (Frankfurt, eu-central-1) region via Supabase. Application hosting on Vercel uses edge locations closest to the user, with server-side rendering processed in the EU. No data is replicated outside the EU unless explicitly requested.

Sub-processors

ProviderPurposeData processedCompliance
SupabaseDatabase, auth, file storageAll application dataSOC 2 Type II
VercelApplication hostingRequest/response dataSOC 2 Type II
StripePayment processingBilling data only (no client data)PCI DSS Level 1

We do not use third-party analytics, tracking, or advertising services. No client data is shared with payment processors.

Vulnerability reporting

If you discover a security vulnerability, please report it responsibly to [email protected]. We will acknowledge receipt within 24 hours and aim to resolve critical issues within 72 hours.

For general security questions: [email protected]

Important: CisoDeck helps you assess, track, and report. It does not certify clients as compliant or secure, and it does not replace professional judgement.

Looking for a page to share with your clients? See Security Information for Your Clients.