securityinput-validation
Input Validation security skill
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Input Validation
All external data is hostile. Validate exhaustively at trust boundaries, reject by default.
ikigai Application
Trust boundaries in ikigai:
- Terminal input (keystrokes, escape sequences)
- Config files (JSON, paths)
- LLM responses (streaming chunks)
- Environment variables
Injection vectors:
- Command injection: Never pass user strings to
system()orpopen() - Path traversal: Reject
.., canonicalize paths before use - Format string: Never
printf(user_input), alwaysprintf("%s", user_input) - Null byte: Truncates C strings, bypasses extension checks
Validation principles:
- Allowlist over blocklist
- Validate type, length, format, range
- Reject on first failure
- Sanitize for context (shell, SQL, HTML, ANSI)
After validation: Internal functions can assert() preconditions. The boundary function already validated.
Review red flags: User data in format strings, string concatenation for paths/commands, unchecked lengths.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!