Input Validation at Boundaries (Never Trust External Data)¶
All data originating from outside a trust boundary is potentially malicious and must be validated before use; validation prevents malformed data from reaching vulnerable internal components.
Tension Addressed¶
Security vs. Performance
Recognizable As¶
Input sanitization; parameterized queries; allowlist validation; type checking at API boundaries; deserialization validation; content-type enforcement; length limits. Any validation that assumes input is malicious until proven otherwise.
Canonical Sources¶
OWASP Input Validation Cheat Sheet; McGraw, "Software Security: Building Security In" (2006)
Transfers To¶
Data quality (validation at ingestion), API design (schema validation), distributed systems (message validation), parsing (defensive parsing)
Sub-concepts: - Allowlisting vs. denylisting: Allowlists define what IS permitted (safer, may reject valid input); denylists define what is NOT permitted (risky, attackers find unlisted attacks) - Context-sensitive output encoding: Input validation prevents bad data from entering; output encoding prevents valid data from being misinterpreted in different contexts (HTML, SQL, shell)