Skip to content

Security: Shayan-alinezhad/taskbox

Security

SECURITY.md

Security

This document explains, at a high level, the security practices Task Box follows. It intentionally avoids describing internal mechanisms, vulnerability locations, or anything that could help someone attack a live deployment.

Authentication

  • Passwords are never stored in plain text; they are hashed with a slow, salted key-derivation function.
  • Sign-in is protected against automated guessing through rate limiting and lockouts.
  • A one-time, token-gated first-run setup creates the initial owner account.

Password protection

  • Minimum-length and basic strength requirements are enforced on the server.
  • Password changes require the current session and invalidate old sessions where appropriate.

Session security

  • Sessions use signed, time-limited tokens delivered via secure cookies.
  • Cookies are marked HttpOnly and Secure with a strict same-site policy.
  • Sessions can be revoked centrally so a compromised token can be invalidated.

Authorization

  • Access is role-aware; sensitive administrative areas are restricted to site owners.
  • Privileged "break-glass" access is limited, discouraged for routine use, and audit-logged.

Input validation

  • Requests are validated on the server before any processing.
  • Client-provided values are treated as untrusted by default.

XSS protection

  • User-generated content is escaped on output.
  • User-supplied links are sanitized so unsafe URL schemes cannot execute.

CSRF protection

  • State-changing requests are validated against origin information and fail closed when it is missing or mismatched.

Secure headers

  • A strict Content Security Policy and related response headers are sent on every response.
  • Transport security (HSTS) and anti-framing protections are enabled.

File upload security

  • Uploads are restricted to a small allowlist of safe image types.
  • File contents are checked against their claimed type, not just the file name.
  • Uploads are size-limited and rate-limited.

Error handling & logging

  • Errors return generic messages to clients; details are logged server-side only.
  • Sensitive values are never included in client-facing responses.

Reporting a security issue

If you believe you have found a security problem, please report it privately and responsibly:

  • Open a private security advisory on the GitHub repository, or
  • Contact the maintainer through the address listed on the repository profile.

Please do not open public issues for security reports, and please give us reasonable time to investigate and fix before any public disclosure.

There aren't any published security advisories