Platform Security
Security is not an afterthought at GoFindPart. From authentication to payment processing and infrastructure, every layer is hardened to protect our buyers, suppliers, and their data.
Last updated: January 2026
15 min
Token Expiry
TLS 1.2+
Transport Security
PCI DSS
Payment Security
< 24h
Response to Reports
🔑
Authentication & Access Control
Multi-layered authentication protects every account on the platform.
- JSON Web Token (JWT) authentication — access tokens expire after 15 minutes
- Refresh tokens (7-day lifetime) stored in HttpOnly, SameSite=Strict cookies — never in localStorage
- Single-session enforcement: logging in on a new device revokes all previous sessions
- Token rotation on every refresh — stolen tokens are invalidated immediately
- Token reuse detection: if a refresh token is used twice, the entire token family is revoked
- Step-up authentication required for sensitive admin actions (2FA re-verification)
- Optional two-factor authentication (TOTP) for all accounts
- Rate limiting on login (10 attempts per 15 minutes) and registration (3 per hour)
🗄️
Data Protection & Encryption
All data is encrypted in transit and at rest. Payment data never touches our servers.
- All traffic encrypted with TLS 1.2+ (HTTPS enforced; HTTP redirected)
- Passwords hashed with bcrypt — plaintext passwords are never stored anywhere
- Database encryption at rest for all user and transaction data
- Payment card data handled entirely by Stripe — we are PCI DSS compliant by design
- All uploaded documents (images, proof of purchase) stored in AWS S3 with server-side encryption (AES-256)
- Escrow funds processed through Stripe Connect — segregated from GoFindPart operating accounts
- Production database access restricted to application services only — no direct developer access
🏗️
Infrastructure Security
Hosted on Render with automated security scanning and zero-trust network policies.
- Application hosted on Render's managed cloud infrastructure (zero root access from GoFindPart)
- Automated dependency vulnerability scanning on every pull request
- Docker container images rebuilt from scratch on every deployment — no persistent container state
- Redis cache (Upstash) with TLS and password authentication; no plaintext connections
- Security headers enforced on all responses: HSTS, X-Frame-Options, CSP, X-Content-Type-Options
- CSRF protection via Origin header validation — cross-site requests are rejected
- Structured request logging with Pino 10 — anomalous patterns trigger automated alerts via Sentry
🛠️
Application-Level Security
Security is enforced at every layer — from route hooks to response serialisation.
- All input validated with Zod schemas before processing — invalid payloads are rejected early
- Role-based access control enforced on every authenticated route (buyer, seller, admin)
- API responses serialised through DTO mappers — raw database models are never returned
- Kill-switch system: any platform feature can be disabled by admins without a deployment
- Idempotency keys on all admin write operations — duplicate requests are safely rejected
- Content Security Policy configured per surface (marketing, app, admin) — Stripe frames blocked on non-payment pages
📦
Delivery & Physical Security
QR-code handoffs create a tamper-resistant chain of custody for every order.
- Pickup orders require a signed QR code to be scanned by both parties at handoff
- QR verification codes are single-use and expire after the transaction window
- Delivery confirmation timestamps stored as immutable audit records
- Escrow release triggered only after a confirmed delivery event — never on seller-only actions
🔍
Vulnerability Reporting
Found a security issue? We take all reports seriously and respond within 24 hours.
- Email security@gofindpart.com with a detailed description of the vulnerability
- Please do not disclose the vulnerability publicly until we have had a chance to address it
- Include steps to reproduce, potential impact, and your contact details
- We will acknowledge receipt within 24 hours and provide a timeline for resolution