Lewati ke konten

Keamanan

  • Row-Level Security (RLS) pada semua tabel tenant, dengan app.current_tenant per-request.
  • Session device-bound — X-Device-Id harus match session.
  • Login rate-limited (isLoginRateLimited + recordLoginFailure).
  • OTP cooldown 30 detik.
  • Idempotency keys tenant-scoped — mencegah race antar tenant.
  • Capability matrix per role (packages/klola-authorization).
  • Module entitlement per bisnis (infra/auth/module-authorization.ts).

Praktik lain: sanitize semua user input, rateLimiter middleware untuk endpoint sensitif, mengikuti OWASP, tidak menyimpan data sensitif dalam plain text, dan secrets via environment variables (wrangler secrets).