Input validation prevents most injection attacks.
Validation Principles
- Never trust user input
- Whitelist over blacklist
- Validate on server side
- Sanitize for context
- Encode outputCommon Mistakes
- Client-side only validation
- Blacklist filtering
- Improper encoding
- Missing validation
- Type coercion issuesInput Types
- SQL: Parameterized queries
- HTML: Context-aware encoding
- Commands: Avoid or escape
- Files: Type and size validation
- URLs: Protocol whitelist