| name | input-validation |
| description | Input validation and sanitization patterns for preventing XSS, injection attacks, and ensuring data integrity |
| license | Apache-2.0 |
Input Validation Skill
🔴 AI FIRST Quality Principle
Apply the AI FIRST principle: never accept first-pass quality. Minimum 2 iterations. Read all output, improve every section. No shortcuts.
Purpose
Defines input validation and sanitization patterns for preventing security vulnerabilities and ensuring data integrity.
Core Principles
- Validate all input — Never trust user-supplied data
- Allowlist over denylist — Define what IS allowed
- Validate on server-side — Client-side validation is UX only
- Encode output — Context-appropriate encoding
- Fail securely — Reject invalid input with safe defaults
HTML/Static Site Validation
- Sanitize any user-generated content before rendering
- Use
textContent instead of innerHTML when possible
- Escape HTML entities (
&, <, >, ", ')
- Validate URL inputs (protocol allowlist: https only)
- Use Content Security Policy (CSP) headers
XSS Prevention
function escapeHtml(text) {
const div = document.createElement('div');
div.textContent = text;
return div.innerHTML;
}
JSON Schema Validation
- Validate API response data against schemas
- Use AJV for JSON Schema validation
- Define strict schemas for all data structures
URL Validation
- Allowlist protocols (https only)
- Validate domain against known sources
- Sanitize query parameters
- Prevent open redirect vulnerabilities
ISO 27001 Mapping
- A.8.26 — Application security requirements
- A.8.28 — Secure coding
Related Policies