Implementing Security Patterns

1. Encrypting Data in Transit

AspectDetail
ProtocolTLS 1.3 (preferred), TLS 1.2 minimum
Cipher suitesModern AEAD (AES-GCM, ChaCha20-Poly1305)
HSTSStrict-Transport-Security: max-age=63072000; includeSubDomains; preload
In-clustermTLS via service mesh
DisableSSLv3, TLS 1.0/1.1 DEPRECATED

2. Encrypting Data at Rest

LayerMechanism
DiskLUKS, EBS encryption
DatabaseTDE (Postgres pgcrypto, MySQL TDE)
Field-levelApp encrypts before insert (sensitive PII)
BackupsEncrypted snapshots
Key mgmtKMS (AWS, GCP, Azure, Vault Transit)

3. Implementing Input Validation

RuleDetail
Allow-listDefine valid; reject rest
SchemaJSON Schema, OpenAPI, Bean Validation
Type/range/lengthStrict bounds
CanonicalizationNormalize before validation (Unicode NFC)
At boundaryValidate in API layer + domain

4. Preventing SQL Injection

TechniqueDetail
Parameterized queriesAlways use placeholders
ORMJPA/Hibernate, Prisma, SQLAlchemy
Stored proceduresWith typed params
Least privilege DB userNo DROP/TRUNCATE in app role
AvoidString concatenation; dynamic SQL

5. Preventing XSS Attacks

DefenseDetail
Context-aware encodingHTML, attr, JS, URL contexts
CSPdefault-src 'self'; script-src 'self'
Sanitize HTMLDOMPurify, OWASP Java HTML Sanitizer
HttpOnly cookiesPrevent JS token theft
AvoidinnerHTML, eval

6. Implementing CSRF Protection

DefenseDetail
SameSite cookiesSameSite=Lax default; Strict for auth
CSRF tokensPer-session synchronizer token
Double-submitToken in cookie + header
Custom header checkRequire X-Requested-With
Bearer tokensNot vulnerable (no auto-send)

7. Using Security Headers

HeaderRecommended Value
Strict-Transport-Securitymax-age=63072000; includeSubDomains; preload
Content-Security-PolicyApp-specific; minimum default-src 'self'
X-Content-Type-Optionsnosniff
X-Frame-OptionsDENY (or CSP frame-ancestors)
Referrer-Policystrict-origin-when-cross-origin
Permissions-PolicyRestrict camera, mic, geo

8. Implementing Secrets Management

PracticeDetail
Centralized vaultVault, Secrets Manager
Dynamic secretsVault DB engines (auto-rotated)
Workload identityIRSA, Workload Identity, Pod Identity
RotationAutomated; ≤ 90 days
AuditWho accessed which secret when

9. Handling Sensitive Data

PracticeDetail
ClassificationPublic / Internal / Confidential / Restricted
TokenizationReplace PII with tokens; vault holds map
MaskingLogs, UIs show ****1234
MinimizationDon't store what you don't need
Right to erasureGDPR Art. 17 workflows

10. Implementing Audit Logging

FieldDetail
whoUser/service ID
whatAction + resource ID
whenUTC timestamp (ms)
whereSource IP, service
outcomeSuccess / failure + reason
Tamper-evidentAppend-only, signed, separate store

11. Using API Security Standards

StandardDetail
OWASP API Security Top 10 (2023)BOLA, Broken Auth, BOPLA, etc.
FAPI 2.0Financial-grade OAuth profile
OpenID ConnectIdentity layer over OAuth 2.0
JWT Best Current PracticesRFC 8725

12. Implementing Zero Trust Architecture

PrincipleDetail
Never trust, always verifyAuth every call (no perimeter trust)
Strong identitySPIFFE/mTLS for services; OIDC for users
Least privilegePer-action authorization
MicrosegmentationNetworkPolicies, mesh AuthZ
Continuous verificationRisk-based, device posture