Security

Shulkr is designed with security as a priority.

Authentication

JWT (JSON Web Tokens)

  • Access Token: 15 minutes, stored in memory
  • Refresh Token: 7 days, httpOnly cookie

Password Hashing

  • Algorithm: bcrypt
  • Cost factor: 12 minimum
  • Unique salt per user

Rate Limiting

Rate limiting is enforced on all mutation endpoints. See the Rate Limits page for the full breakdown per action.

File Protection

Path Traversal

Shulkr protects against path traversal attacks:

❌ ../../../etc/passwd  → Rejected
❌ /etc/passwd          → Rejected (outside root)
✅ /server/plugins/     → Allowed