OWASP-aware secure coding awareness. Provides security rules, common vulnerability patterns, and safe coding practices adapted to the project's language and framework.
Auto-loaded skill providing security context for every coding session. All code generated or reviewed should follow these security principles.
subprocess.run() with shell=False and list args (never shell=True with user input)secrets.token_urlsafe() for tokens, not randomdefusedxml for XML parsing (prevents XXE)bcrypt or argon2 for password hashing, never MD5/SHA1parameterized queries or ORM methods, never string concatenation for DBhelmet middleware for Express HTTP headersDOMPurify or similar for HTML sanitizationcrypto.randomUUID() for identifiers, not Math.random()html/template (auto-escapes) over text/templatecrypto/rand not math/rand for security-sensitive valuesprepared statements for database querieserr returns — silent error drops cause security bypassesDBI placeholders (?) for all database queriesTaint mode (-T) for CGI/web scriptsquotemeta() or \Q...\E when interpolating into regexIPC::Run over backticks for external commandssqlx::query! macro for compile-time query validationring or rustcrypto crates for cryptographysecrecy::Secret<T> wrapper to prevent accidental logging of secretsunsafe blocks unless absolutely necessary and well-documentedPreparedStatement for all JDBC queriesOWASP Java Encoder for output encodingjava.security.SecureRandom for tokensRuntime.exec() with user input; use ProcessBuilder with explicit argsSqlParameter for all ADO.NET queries or EF Core parameterized queriesHtmlEncoder.Default.Encode() for HTML outputSystem.Security.Cryptography.RandomNumberGenerator for tokensnullable reference types to prevent null-related vulnerabilitiesSee references/owasp-quick-ref.md for detailed coverage assessment.
| Risk | Status | Notes | |------|--------|-------| | LLM01 Prompt Injection | Partial | validate-read + validate-fetch reduce attack surface | | LLM02 Sensitive Info Disclosure | Addressed | validate-write secret scanning + validate-read | | LLM03 Supply Chain | Partial | install.sh integrity + pipe-to-shell blocking | | LLM06 Excessive Agency | Addressed | Per-agent tool restrictions, graduated response |
This project is protected by these cognitive-core security hooks:
validate-bash.sh — blocks destructive commands, exfiltration, pipe-to-shellvalidate-read.sh — prevents reading sensitive system filesvalidate-fetch.sh — audits external URL access, domain filteringvalidate-write.sh — scans written files for hardcoded secretssetup-env.sh — verifies hook integrity at session startSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer