This checklist provides a quick security review guide for developers, reviewers, and security auditors.
- Canvas API token stored in
.envfile (not hardcoded) -
.envfile listed in.gitignore -
.envfile permissions set to 600 (Unix/Linux) - No credentials in source code
- No credentials in configuration files
- No credentials in comments or documentation
- Token validation on server startup
- Clear error messages for invalid tokens
- Student tools only use Canvas "self" endpoints
- Educator tools check for appropriate permissions
- Data anonymization system implemented
-
ENABLE_DATA_ANONYMIZATIONoption documented - Student names anonymized when enabled
- Student emails anonymized when enabled
- Anonymization consistent across requests
- Anonymization mapping file secured
- No PII in error messages
- No PII in log files
- No PII in debug output
- Audit logging for PII access (if applicable)
- Code execution timeout implemented (120s default)
- Temporary files used for code execution
- Temporary files automatically deleted
- File system access restricted (if sandboxed)
- Network access restricted (if sandboxed)
- Resource limits enforced (memory, CPU)
- Code execution logged
- Malicious code patterns blocked
- Credential access restricted
- Review-before-execute workflow documented
- HTTPS enforced for all Canvas API calls
- HTTP automatically upgraded to HTTPS
- No sensitive data in URLs
- No sensitive data in query parameters
- Data processed locally (no external transmission)
- Error messages sanitized for PII
- Logs sanitized for PII
- Temporary data cleaned up
- User consent documented for AI processing
- Privacy policy documented
- All tool parameters validated
- Type validation enforced
- Required parameters checked
- Optional parameters have defaults
- Boundary conditions handled
- Special characters handled safely
- Path traversal prevented
- Command injection prevented
- XSS protection for user content
- File upload validation (if applicable)
- No hardcoded secrets
- No secrets in version control
- Secrets in environment variables
-
.envfile permissions enforced -
.env.templatehas placeholder values only - Secrets not logged
- Secrets not in error messages
- Secrets not exposed to code execution
- Token rotation procedure documented
- Expired token handling documented
- HTTPS enforced
- TLS 1.2+ required
- Certificate validation enabled
- User-Agent header set properly
- Rate limiting implemented
- Exponential backoff on rate limits
- Timeout configuration documented
- Connection pooling configured
- No insecure protocols allowed
- API endpoint validation
- Structured logging implemented
- Log levels configured appropriately
- Security events logged
- No PII in logs
- No credentials in logs
- Log rotation configured
- Log retention policy documented
- Error logging comprehensive
- Debug logging disabled in production
- Log review procedures documented
- Dependencies pinned to specific versions
- No known critical vulnerabilities
- No known high vulnerabilities
- Dependencies from trusted sources
- License compatibility verified
- Dependency update schedule documented
- Security advisory monitoring configured
- Automated dependency scanning enabled
- Regular dependency updates performed
- Vulnerability response plan documented
- All errors handled gracefully
- No stack traces to users
- Error messages user-friendly
- Error messages don't leak system info
- Error messages don't contain PII
- Error messages don't contain credentials
- Failed operations logged
- Critical errors alerted
- Error recovery documented
- Fallback mechanisms implemented
- Secure defaults configured
- Configuration validation on startup
- Configuration errors clearly reported
- No sensitive data in config files
- Configuration documented
- Environment-specific configs separated
- Production config reviewed
- Debug mode disabled in production
- Unnecessary features disabled
- Security headers configured
- Security policy (SECURITY.md) complete
- Vulnerability reporting process documented
- Security best practices documented
- Configuration guide includes security
- Privacy policy documented
- FERPA compliance documented
- Incident response plan documented
- Security testing procedures documented
- Known limitations documented
- Security roadmap documented
- Code follows security best practices
- No security anti-patterns present
- Security implications considered
- Thread-safety verified (if applicable)
- Race conditions addressed
- Resource leaks prevented
- Memory safety verified (if applicable)
- Type safety enforced
- Exceptions handled properly
- Security tests included
- Credentials validated before use
- No credential logging
- Secure credential storage
- Token expiration handled
- Authentication errors handled gracefully
- No timing attacks possible
- Session management secure (if applicable)
- Re-authentication required for sensitive ops
- Logout functionality secure
- Account lockout implemented (if applicable)
- Permissions checked before operations
- Default deny policy enforced
- Least privilege principle followed
- Role-based access control implemented
- Authorization errors handled properly
- No privilege escalation possible
- Resource ownership verified
- Indirect object references protected
- Authorization consistent across endpoints
- Authorization tested
- PII access logged (if required)
- Data minimization practiced
- Only necessary data retrieved
- Data anonymized when required
- Data filtered by permissions
- No data leaks in responses
- Pagination implemented properly
- Query parameters validated
- Data retention policy followed
- Data deletion implemented securely
- All inputs validated
- Validation on server side
- Whitelist validation used
- Type coercion safe
- Encoding handled properly
- Special characters escaped
- Length limits enforced
- Format validation performed
- Injection attacks prevented
- Input sanitization performed
- Data properly encoded for context
- XSS prevention implemented
- Content-Type headers set correctly
- No sensitive data in responses
- Error messages sanitized
- Stack traces not exposed
- Output validation performed
- Response size limited
- Caching headers appropriate
- CORS configured properly (if applicable)
- Strong algorithms used (AES-256, RSA-2048+)
- No deprecated algorithms (MD5, SHA1 for security)
- Random numbers cryptographically secure
- Keys properly generated
- Keys securely stored
- Initialization vectors unique
- Padding schemes secure
- Salt used for password hashing
- Constant-time comparisons for secrets
- Library functions used (no custom crypto)
- File paths validated
- Path traversal prevented
- File permissions checked
- File size limits enforced
- File type validation performed
- Symlink attacks prevented
- Race conditions in file operations addressed
- Temporary files secured
- Temporary files cleaned up
- File uploads validated (if applicable)
- HTTPS used for sensitive data
- Certificate validation enabled
- TLS version enforced
- Timeouts configured
- Rate limiting implemented
- Connection pooling configured
- DNS rebinding protected (if applicable)
- SSRF prevented
- Proxy support secure (if applicable)
- Network errors handled
- SQL injection prevented
- Parameterized queries used
- ORM used properly
- Database credentials secured
- Connection strings secured
- Least privilege database user
- Database errors handled securely
- Transactions used appropriately
- Connection pooling configured
- Database backups secured
- Security-critical functions tested
- Edge cases tested
- Boundary conditions tested
- Error handling tested
- Input validation tested
- Authentication tested
- Authorization tested
- Negative test cases included
- Test coverage adequate (>80%)
- Tests run in CI/CD
- End-to-end flows tested
- Authentication flow tested
- Authorization flow tested
- Data access tested
- Error scenarios tested
- Rate limiting tested
- Timeout handling tested
- External API mocked properly
- Test data doesn't contain real PII
- Tests cleanup after execution
- SAST scanning performed (Bandit)
- Dependency scanning performed (pip-audit)
- Secret scanning performed (detect-secrets)
- Input validation tested
- Authentication bypass tested
- Authorization bypass tested
- Injection attacks tested
- XSS attacks tested
- CSRF tested (if applicable)
- Security tests automated
- Penetration testing performed
- Security code review completed
- Configuration review completed
- Documentation review completed
- Compliance review completed
- Threat modeling completed
- Risk assessment completed
- Red team testing performed (if applicable)
- Social engineering tested (if applicable)
- Physical security tested (if applicable)
- Security review completed
- Security tests passed
- Vulnerability scan passed
- Dependencies updated
- Configuration reviewed
- Secrets configured properly
- Backup procedures tested
- Rollback procedures tested
- Monitoring configured
- Alerting configured
- Deploy to test environment first
- Test in production-like environment
- Verify security settings
- Verify credentials work
- Verify HTTPS works
- Verify logging works
- Verify monitoring works
- Verify backups work
- Deploy to production
- Verify production deployment
- Monitor for errors
- Monitor for security events
- Verify functionality works
- Check logs for issues
- Test critical paths
- Verify performance acceptable
- Document deployment
- Update runbooks
- Communicate to stakeholders
- Schedule post-mortem (if needed)
- Security monitoring active
- Alerting configured
- Logs reviewed regularly
- Anomalies investigated
- Security team notified
- Incident documented
- Severity assessed
- Impact assessed
- Scope determined
- Timeline established
- Affected systems identified
- Attack vector identified
- Affected users identified
- Systems isolated (if needed)
- Credentials rotated
- Access revoked
- Evidence preserved
- Backup systems activated
- Communication plan activated
- Stakeholders notified
- Root cause identified
- Vulnerability patched
- Malicious code removed
- Compromised credentials changed
- Systems cleaned
- Security controls updated
- Monitoring enhanced
- Verification performed
- Testing completed
- Documentation updated
- Systems restored from clean backups
- Services restored gradually
- Monitoring intensified
- User access restored
- Normal operations resumed
- Performance verified
- Security verified
- Stakeholders updated
- Lessons learned documented
- Prevention measures implemented
- Incident report completed
- Root cause analysis done
- Timeline documented
- Impact assessed fully
- Costs calculated
- Post-mortem conducted
- Lessons learned shared
- Procedures updated
- Training updated
- Monitoring improved
- Student consent obtained (if required)
- Data minimization practiced
- PII protected
- Access controls implemented
- Audit logging enabled
- Data retention policy followed
- Data disposal secure
- Third-party agreements reviewed
- Training provided to users
- Annual review completed
- Security policy documented
- Policy reviewed annually
- Policy communicated to team
- Policy training provided
- Compliance verified
- Violations reported
- Exceptions documented
- Risk acceptance documented
- Compensating controls implemented
- Audit trail maintained
- Applicable regulations identified
- Compliance requirements documented
- Controls implemented
- Compliance verified
- Audits completed
- Findings remediated
- Evidence maintained
- Reporting completed
- Certifications current
- Legal review completed
Use this for rapid security assessment:
- No credentials in code or version control
- HTTPS enforced
- Input validation on all parameters
- Authentication required for sensitive operations
- PII protected and anonymized
- No critical dependency vulnerabilities
- Error messages don't leak sensitive info
- Audit logging for security events
- Security documentation exists
- Incident response plan exists
- Token encryption at rest
- Code execution sandboxed
- Rate limiting implemented
- No PII in logs
- Dependency scanning automated
- Security testing automated
- Configuration validation
- Monitoring and alerting
- Regular security reviews
- Security training provided
- Multi-factor authentication
- Advanced threat detection
- Penetration testing regular
- Bug bounty program
- Security champions program
- Threat modeling updated
- Red team exercises
- Compliance certifications
- External security audits
- Security metrics tracked
- This checklist should be reviewed and updated regularly
- Not all items may apply to every deployment
- Use professional judgment for risk assessment
- Document any exceptions or deviations
- Keep evidence of compliance activities
- Review checklist with security team
- Update checklist based on lessons learned
- Share checklist with all team members
Last Updated: January 2026
Next Review: April 2026
Version: 1.0