dot-claude/skills/vibesec/SKILL.md
This skill helps Claude write secure web applications. Use this when working on any web application or when a user requests a scan or audit to ensure security best practices are followed.
npx skillsauth add sutanunandigrami/claude-titan-setup VibeSec-SkillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Principles: Defense in depth, fail closed, least privilege, validate server-side, encode output contextually.
Sanitize ALL user-controllable inputs:
Defenses:
{{ }})default-src 'self'; script-src 'self'; frame-ancestors 'none' — avoid unsafe-inline/unsafe-evalX-Content-Type-Options: nosniff, X-Frame-Options: DENYSameSite=Strict; Secure; HttpOnly on session cookiesNever in client-side code: API keys, DB strings, JWT secrets, encryption keys, OAuth secrets, internal URLs
Check for leaks in: JS bundles, source maps, HTML comments, hidden fields, data attributes, localStorage, SSR hydration data, NEXT_PUBLIC_*/REACT_APP_* env vars
/, no //)@ symbol, subdomain abuse, javascript: protocol, double URL encoding, backslash, null byte, data URLs, protocol-relative //, unicode homographs169.254.169.254, metadata.google.internal[::1], DNS rebinding, CNAME to internal, redirect chains.php.jpg, null byte %00, MIME spoofing, polyglot files, SVG with JS, XXE via DOCX/XLSX, ZIP slip ../, ImageMagick exploitsContent-Disposition: attachment + nosniff, use CDN/separate domain%, _)defusedxml library or etree.XMLParser(resolve_entities=False, no_network=True)files.get(user_input)os.path.abspath(os.path.realpath(...)), verify commonpath with base dir.., absolute paths, whitelist allowed charsStrict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Security-Policy: default-src 'self'; script-src 'self'; frame-ancestors 'none'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Cache-Control: no-store # sensitive pages
alg: none, never derive from tokenexp, use short-lived tokens (15min) + refresh rotationModel.update(req.body) directlytools
Project workspace configuration — auto-detect commands, _workspace.json convention, .envrc templates
tools
Configures Python projects with modern tooling (uv, ruff, ty). Use when creating projects, writing standalone scripts, or migrating from pip/Poetry/mypy/black.
tools
Control tmux sessions — create panes, run commands, read output, monitor processes
testing
Security scanning and vulnerability assessment workflows. Use when performing security audits, scanning for vulnerabilities, checking dependencies, or hardening systems.