Skip to content

Security Patterns ​

Essential security patterns for building secure applications with Orchestre. These patterns help you implement defense in depth and follow security best practices.

Security Principles ​

  1. Defense in Depth - Multiple layers of security
  2. Least Privilege - Minimal necessary permissions
  3. Zero Trust - Verify everything, trust nothing
  4. Fail Secure - Secure by default when failures occur
  5. Security by Design - Built-in, not bolted-on

Authentication Patterns ​

Pattern: Multi-Factor Authentication (MFA) ​

Context: Enhancing account security beyond passwords

Implementation:

bash
/execute-task "Implement MFA with:
- TOTP (Time-based One-Time Password)
- Backup codes generation
- Recovery flow
- Remember device option
- Audit logging"

Example:

bash
/execute-task "Add TOTP-based MFA:
1. Generate secret on first setup
2. Provide QR code for authenticator apps
3. Verify TOTP code before enabling
4. Generate 10 backup codes
5. Log all MFA events"

Security Considerations:

  • Store secrets encrypted
  • Rate limit verification attempts
  • Invalidate sessions on MFA changes
  • Clear messaging about MFA importance

Pattern: Secure Session Management ​

Context: Managing user sessions securely

Implementation:

bash
/execute-task "Implement secure session management:
- Cryptographically secure session IDs
- Session rotation on privilege escalation
- Absolute and idle timeouts
- Secure cookie flags
- Session invalidation on logout"

Example:

bash
/execute-task "Create session management with:
- 256-bit random session IDs
- Rotation after login/permission change
- 24h absolute timeout, 30min idle timeout
- httpOnly, secure, sameSite cookie flags
- Redis session store with immediate invalidation"

Authorization Patterns ​

Pattern: Role-Based Access Control (RBAC) ​

Context: Managing permissions at scale

Implementation:

bash
/execute-task "Implement RBAC system:
- Role hierarchy definition
- Permission assignment
- Dynamic permission checking
- Admin interface
- Audit trail"

Example:

bash
/execute-task "Create RBAC with roles:
- Admin: Full access
- Editor: Create/edit content
- Viewer: Read-only access
With middleware for route protection
and method-level permission checks"

Pattern: Attribute-Based Access Control (ABAC) ​

Context: Fine-grained, contextual permissions

Implementation:

bash
/execute-task "Implement ABAC with:
- Policy engine
- Attribute definitions
- Context evaluation
- Policy testing tools
- Performance optimization"

Example:

bash
/execute-task "Create ABAC for document access:
Rules like:
- Users can edit their own documents
- Managers can view team documents
- Documents marked 'public' are readable by all
- Time-based access for contractors"

Input Security Patterns ​

Pattern: Input Validation Layer ​

Context: Preventing injection attacks and data corruption

Implementation:

bash
/execute-task "Create comprehensive input validation:
- Schema-based validation
- Type checking and coercion
- Length and format constraints
- Sanitization rules
- Error messaging"

Example:

bash
/execute-task "Implement input validation for user API:
- Email: RFC 5322 compliant
- Password: Min 12 chars, complexity rules
- Username: Alphanumeric, 3-20 chars
- Bio: Max 500 chars, strip HTML
With clear error messages for each rule"

Pattern: SQL Injection Prevention ​

Context: Protecting database queries from injection

Implementation:

bash
/execute-task "Implement SQL injection prevention:
- Parameterized queries only
- Stored procedure wrapper
- Query builder validation
- Input sanitization
- Query logging and monitoring"

Best Practices:

javascript
// Never do this
const query = `SELECT * FROM users WHERE id = ${userId}`;

// Always use parameterized queries
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);

Data Security Patterns ​

Pattern: Encryption at Rest ​

Context: Protecting stored sensitive data

Implementation:

bash
/execute-task "Implement encryption at rest:
- Field-level encryption for PII
- Transparent database encryption
- Key rotation strategy
- Secure key storage (HSM/KMS)
- Backup encryption"

Example:

bash
/execute-task "Encrypt sensitive user data:
- SSN: AES-256-GCM encryption
- Credit cards: Tokenization
- Passwords: Argon2id hashing
- Medical records: Full record encryption
Using AWS KMS for key management"

Pattern: Secure Data Transmission ​

Context: Protecting data in transit

Implementation:

bash
/execute-task "Implement secure data transmission:
- TLS 1.3 enforcement
- Certificate pinning for mobile
- Perfect forward secrecy
- HSTS headers
- API encryption layer"

API Security Patterns ​

Pattern: API Rate Limiting ​

Context: Preventing abuse and ensuring availability

Implementation:

bash
/execute-task "Implement API rate limiting:
- Per-user rate limits
- Per-IP rate limits
- Endpoint-specific limits
- Sliding window algorithm
- Graceful limit communication"

Example:

bash
/execute-task "Create rate limiting with:
- Authenticated: 1000 req/hour
- Anonymous: 100 req/hour
- Auth endpoints: 5 req/minute
- Upload endpoints: 10 req/hour
Using Redis sliding window"

Pattern: API Key Management ​

Context: Secure API authentication for services

Implementation:

bash
/execute-task "Create API key system:
- Key generation and rotation
- Scope-based permissions
- Usage tracking
- Revocation mechanism
- Key encryption at rest"

Security Monitoring Patterns ​

Pattern: Security Event Logging ​

Context: Detecting and investigating security incidents

Implementation:

bash
/execute-task "Implement security logging:
- Authentication events
- Authorization failures
- Data access patterns
- System changes
- Anomaly detection"

Example:

bash
/execute-task "Create security event log with:
- Failed login attempts
- Permission escalation
- Sensitive data access
- Configuration changes
- API key usage
Storing in append-only log with alerting"

Pattern: Intrusion Detection ​

Context: Identifying potential security breaches

Implementation:

bash
/execute-task "Implement intrusion detection:
- Behavior baselines
- Anomaly detection rules
- Real-time alerting
- Automated responses
- Forensic data collection"

Secure Development Patterns ​

Pattern: Security Testing Pipeline ​

Context: Automated security validation

Implementation:

bash
/execute-task "Create security testing pipeline:
- Static code analysis (SAST)
- Dependency vulnerability scanning
- Dynamic testing (DAST)
- Security unit tests
- Penetration test hooks"

Example:

bash
/execute-task "Set up security pipeline with:
- SonarQube for code analysis
- OWASP dependency check
- ZAP for dynamic testing
- Security test suite
- Weekly penetration test runs"

Pattern: Secure Configuration Management ​

Context: Managing secrets and configuration securely

Implementation:

bash
/execute-task "Implement secure configuration:
- Environment-based configs
- Encrypted secrets storage
- Runtime secret injection
- Configuration validation
- Audit trail"

Common Vulnerability Patterns ​

Pattern: XSS Prevention ​

Context: Preventing cross-site scripting attacks

Implementation:

bash
/execute-task "Implement XSS prevention:
- Content Security Policy headers
- Input sanitization
- Output encoding
- Template auto-escaping
- DOM purification"

Pattern: CSRF Protection ​

Context: Preventing cross-site request forgery

Implementation:

bash
/execute-task "Implement CSRF protection:
- Synchronizer tokens
- Double submit cookies
- SameSite cookie attribute
- Origin header validation
- Custom headers for APIs"

Incident Response Patterns ​

Pattern: Security Incident Response ​

Context: Handling security breaches effectively

Implementation:

bash
/orchestrate "Create incident response plan:
- Detection mechanisms
- Escalation procedures
- Containment strategies
- Evidence preservation
- Communication templates"

Pattern: Data Breach Response ​

Context: Managing data breach scenarios

Implementation:

bash
/orchestrate "Implement data breach response:
- Automated detection
- User notification system
- Password reset enforcement
- Audit log preservation
- Regulatory compliance"

Security Checklist ​

For every feature, consider:

  • [ ] Authentication: Who can access this?
  • [ ] Authorization: What can they do?
  • [ ] Validation: Is input safe?
  • [ ] Encryption: Is data protected?
  • [ ] Logging: Can we detect abuse?
  • [ ] Error Handling: Do errors leak info?
  • [ ] Rate Limiting: Can it be abused?
  • [ ] Dependencies: Are libraries secure?

Security Anti-Patterns ​

Anti-Pattern: Security Through Obscurity ​

❌ Avoid:

javascript
// "Hidden" admin endpoint
app.get('/secret-admin-panel', adminController);

✅ Better:

javascript
// Proper authentication and authorization
app.get('/admin', authenticate, authorize('admin'), adminController);

Anti-Pattern: Trusting Client Data ​

❌ Avoid:

javascript
// Trusting client-provided role
const role = req.body.role;
if (role === 'admin') { /* admin access */ }

✅ Better:

javascript
// Server-side role verification
const role = await getUserRole(req.user.id);
if (role === 'admin') { /* admin access */ }

Anti-Pattern: Weak Crypto ​

❌ Avoid:

javascript
// MD5 for passwords
const hash = md5(password);

✅ Better:

javascript
// Modern password hashing
const hash = await argon2.hash(password);

Quick Security Wins ​

Immediate improvements you can make:

bash
# 1. Add security headers
/execute-task "Add security headers: CSP, HSTS, X-Frame-Options"

# 2. Enable rate limiting
/execute-task "Add rate limiting to all API endpoints"

# 3. Implement logging
/execute-task "Add security event logging for auth events"

# 4. Update dependencies
/security-audit --fix-vulnerable

# 5. Add input validation
/execute-task "Add validation to all API inputs"

Compliance Patterns ​

GDPR Compliance ​

bash
/orchestrate "Implement GDPR compliance:
- Privacy by design
- Data minimization
- Right to erasure
- Data portability
- Consent management"

PCI DSS Compliance ​

bash
/orchestrate "Implement PCI compliance:
- Network segmentation
- Encryption requirements
- Access controls
- Vulnerability management
- Security testing"

Resources ​


Next Steps ​

Built with ❤️ for the AI Coding community, by Praney Behl