security-principles
maintained by exceptionless
star
2.4k
account_tree
513
verified_user
MIT License
name: Security Principles description: | Security best practices for the Exceptionless codebase. Secrets management, input validation, secure defaults, and avoiding common vulnerabilities. Keywords: security, secrets, encryption, PII, logging, input validation, secure defaults, environment variables, OWASP, cryptography
Security Principles
Secrets Management
Secrets are injected via Kubernetes ConfigMaps and environment variables — never commit secrets to the repository.
-
Configuration files — Use
appsettings.ymlfor non-secret config -
Environment variables — Secrets injected at runtime via
EX_*prefix - Kubernetes — ConfigMaps mount configuration, Secrets mount credentials
// AppOptions binds to configuration (including env vars)
public class AppOptions
{
public string? StripeApiKey { get; set; }
public AuthOptions Auth { get; set; } = new();
}
Validate All Inputs
- Check bounds and formats before processing
- Use
ArgumentNullException.ThrowIfNull()and similar guards - Validate early, fail fast
Sanitize External Data
- Never trust data from queues, caches, user input, or external sources
- Validate against expected schema
- Sanitize HTML/script content before storage or display
No Sensitive Data in Logs
- Never log passwords, tokens, API keys, or PII
- Log identifiers and prefixes, not full values
- Use structured logging with safe placeholders
Use Secure Defaults
- Default to encrypted connections (SSL/TLS enabled)
- Default to restrictive permissions
- Require explicit opt-out for security features
Avoid Deprecated Cryptographic Algorithms
Use modern cryptographic algorithms:
- ❌
MD5,SHA1— Cryptographically broken - ✅
SHA256,SHA512— Current standards
Avoid Insecure Serialization
- ❌
BinaryFormatter— Insecure deserialization vulnerability - ✅
System.Text.Json,Newtonsoft.Json— Safe serialization
Input Bounds Checking
- Enforce minimum/maximum values on pagination parameters
- Limit batch sizes to prevent resource exhaustion
- Validate string lengths before storage
OWASP Reference
Review OWASP Top 10 regularly:
- Broken Access Control
- Cryptographic Failures
- Injection
- Insecure Design
- Security Misconfiguration
- Vulnerable and Outdated Components
- Identification and Authentication Failures
- Software and Data Integrity Failures
- Security Logging and Monitoring Failures
- Server-Side Request Forgery
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
2.4k
GitHub Forks
513
Created
Jan 2026
Last Updated
5个月前
tools
tools security
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!