Skip to content

Security

Last updated: July 13, 2026

Manako prioritizes the safety of your data above all else.

Manako runs on Cloudflare’s global infrastructure. Operating as serverless (Cloudflare Workers) eliminates the need for OS and middleware management, minimizing the attack surface.

CertificationScope
SOC 2 Type IIWorkers, D1, KV, R2, Pages
ISO 27001Information Security Management
ISO 27701GDPR-compliant Privacy Management
PCI DSSWorkers, KV
TargetMethod
At RestAES-256-GCM (all D1, R2, and KV data automatically encrypted)
In TransitTLS 1.3 (including all inter-Worker communication)
PasswordsPBKDF2-SHA-512 + random salt 16 bytes (100,000 iterations, 256-bit key length, timing-safe comparison)
  • JWT (HS256): Access token validity 15 minutes, refresh token 7 days
  • httpOnly cookie authentication: The access token and refresh token are delivered to the browser as httpOnly cookies (Secure, SameSite=Lax) and cannot be read from JavaScript. The dashboard (SPA) never stores authentication tokens in JavaScript-readable storage such as localStorage
  • Refresh token rotation: Old token invalidated immediately upon use, new token issued
  • Refresh token storage: The cookie value itself is stored and managed in Cloudflare KV with a TTL; automatically deleted after expiry
  • CSRF protection: Cookie-authenticated requests are validated against the Origin header, rejecting state-changing requests from origins that are not allow-listed (used together with the cross-site sending restriction from SameSite=Lax)
  • API Key: mk_ prefix + 64-character HEX; stored as SHA-256 hash; only the first 11 characters of the prefix recorded in DB
  • team_id scope enforced on all database queries
  • API Keys issued and managed per team
  • Access to another team’s data is not possible
  • Zod schema validation on all API endpoints
  • SSRF prevention: Blocks private IPs (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), localhost, cloud metadata endpoints (169.254.169.254, metadata.google.internal)
  • HTTP header injection prevention
  • XSS escaping (status page SSR)

The dashboard and admin console are served with the following headers.

HeaderValue
Content-Security-Policyscript-src contains neither 'unsafe-inline' nor 'unsafe-eval'. Inline scripts are allowed individually by SHA-256 hash
X-Frame-Options / frame-ancestorsClickjacking prevention (embedding fully disallowed)
X-Content-Type-Optionsnosniff
Referrer-Policystrict-origin-when-cross-origin
Strict-Transport-Securitymax-age=63072000; includeSubDomains; preload

The CSP also sets object-src 'none', base-uri 'self' and form-action 'self' to limit exploitation paths should an XSS ever succeed.

EndpointRequestsWindowKey
Auth (/auth/*)3060 secondsIP address
Dashboard (/dashboard/*)60060 secondsUser ID
Public API (/api/v1/*) — per IP30060 secondsIP address
Public API (/api/v1/*) — per API KeyPlan-based (Free 60 / Pro 180 / Business 300)60 secondsAPI Key ID
  • HMAC-SHA256 payload signature verification
  • Webhook sending to private IPs and localhost is prohibited (SSRF prevention)

When frequent status changes (flapping) occur in a short period, notifications are automatically suppressed.

  • Threshold: Notifications suppressed after 3 or more status changes within 10 minutes
  • Incident determination: Incident created only after 5 consecutive downs
  • HTTP monitoring does not follow redirects (SSRF prevention)
  • Monitoring requests include an identifiable User-Agent (Manako/1.0)
  • Monitoring is limited to services the customer has authorization for, as required by the Terms of Service
  • Regular code reviews
  • Regular dependency updates
  • Access control based on the principle of least privilege

In the event of a security incident:

  1. Rapid identification and containment of the impact scope
  2. Affected customers are notified within 72 hours
  3. Incident details and countermeasures are publicly disclosed

If you discover a security issue, please contact us at the address below. We express our gratitude to those who practice responsible disclosure.