Secure Development Practices¶
QuantDinger applies secure-design principles to changes that affect identity, credentials, tenant data, strategy execution, provider access, and trading.
Required practices¶
- Deny access by default and verify authorization against authoritative server state instead of trusting claims supplied by a client.
- Validate untrusted input at the boundary and reject unsupported values.
- Keep secrets outside source code and prevent them from entering logs or test fixtures.
- Use established open-source cryptographic libraries and protocols; do not design custom cryptography.
- Store passwords as salted, adaptive hashes. The standard deployment uses bcrypt and never stores plaintext passwords.
- Use cryptographically secure randomness for secrets, tokens, and nonces.
- Use HTTPS/TLS for public deployments and verify remote TLS certificates by default.
- Apply least privilege to GitHub Actions, runtime services, provider keys, and human access.
- Add regression tests for confirmed security defects and major new behavior.
Verification¶
Pull requests run tests, Ruff, CodeQL, Bandit, pip-audit, Gitleaks, dependency lock checks, OpenAPI checks, and Docker Compose validation as applicable. High-confidence exploitable findings are fixed before release or documented as a time-bounded risk exception.
