From playbooks-virtuoso
Provides OWASP Top 10 guidance and stack-agnostic principles for secure web apps. Use for code security reviews, auth/authorization implementation, secrets/API key handling, security headers, injection prevention (SQL/XSS/CSRF), and audits.
npx claudepluginhub krzysztofsurdy/code-virtuoso --plugin playbooks-virtuosoThis skill is limited to using the following tools:
Security is not a feature — it is a property of every feature. Every endpoint, every form, every data flow, every integration point must be designed with security in mind from the start. Bolting security on after the fact is expensive, error-prone, and often incomplete.
Implements security best practices across app stacks including API security, authentication/authorization, input validation, encryption, and monitoring. Covers OWASP Top 10.
Provides OWASP Top 10 guidelines, secure Python/Flask coding patterns, prevention strategies, and remediation for access control and cryptographic vulnerabilities.
Secures web applications against OWASP Top 10 vulnerabilities including broken access control, injection, XSS, CSRF, auth failures. Guides input validation, secure headers, session management, testing.
Share bugs, ideas, or general feedback.
Security is not a feature — it is a property of every feature. Every endpoint, every form, every data flow, every integration point must be designed with security in mind from the start. Bolting security on after the fact is expensive, error-prone, and often incomplete.
This skill provides stack-agnostic guidance for building secure applications. It covers the OWASP Top 10, input validation, authentication and authorization patterns, data protection, secrets management, security headers, and common antipatterns.
Consult this skill when:
The OWASP Top 10 (2021 edition) represents the most critical security risks to web applications. Use this as a starting checklist — not an exhaustive list.
| # | Vulnerability | What It Is | Primary Defense |
|---|---|---|---|
| A01 | Broken Access Control | Users act outside intended permissions | Deny by default, enforce server-side |
| A02 | Cryptographic Failures | Sensitive data exposed due to weak/missing crypto | Use strong algorithms, encrypt in transit and at rest |
| A03 | Injection | Untrusted data sent to interpreter as part of a command/query | Parameterized queries, input validation |
| A04 | Insecure Design | Missing or ineffective security controls by design | Threat modeling, secure design patterns |
| A05 | Security Misconfiguration | Insecure default configs, incomplete setup | Hardened defaults, automated config validation |
| A06 | Vulnerable Components | Using components with known vulnerabilities | Dependency scanning, timely updates |
| A07 | Auth Failures | Broken authentication/identification | MFA, rate limiting, secure password storage |
| A08 | Integrity Failures | Code/data integrity not verified | Signed updates, CI/CD integrity checks |
| A09 | Logging Failures | Insufficient logging and monitoring | Log security events, set up alerting |
| A10 | SSRF | Server tricked into making unintended requests | Allowlist destinations, sanitize URLs |
Input validation is the first line of defense. Validate at every system boundary — not just at the UI.
Core principles:
Type coercion dangers:
Loose type comparisons can bypass security checks. A string "0" might equal integer 0 or boolean false depending on the language. Always use strict comparison operators and explicit type casting.
Parameterized queries:
Never concatenate user input into SQL, LDAP, or OS commands. Always use parameterized queries or prepared statements. This applies to ORMs too — raw query methods bypass ORM protections. See secure coding reference for details.
Authentication verifies identity — "who are you?" See auth patterns reference for detailed guidance.
Password hashing:
Multi-factor authentication (MFA):
Session management:
HttpOnly, Secure, SameSite=Lax (or Strict)Token-based auth (JWT caveats):
alg: noneOAuth2 flows:
Authorization determines permissions — "what are you allowed to do?" Authorization is not authentication. See auth patterns reference for details.
Principle of least privilege:
Role-Based Access Control (RBAC):
Attribute-Based Access Control (ABAC):
Common authorization mistakes:
Encryption at rest:
Encryption in transit:
PII handling:
Secure deletion:
Never in code or config files:
.gitignore for local config files, but do not rely on it as your only protectionEnvironment variables:
Secret managers:
Rotation strategy:
Configure these HTTP response headers on every response. Each addresses a specific class of attack.
| Header | Purpose | Recommended Value |
|---|---|---|
Content-Security-Policy (CSP) | Prevents XSS by controlling which sources can load content | Start with a restrictive policy; avoid unsafe-inline and unsafe-eval |
Strict-Transport-Security (HSTS) | Forces HTTPS for all future requests | max-age=63072000; includeSubDomains; preload |
X-Content-Type-Options | Prevents MIME-type sniffing | nosniff |
X-Frame-Options | Prevents clickjacking by controlling iframe embedding | DENY or SAMEORIGIN |
Referrer-Policy | Controls how much referrer info is sent | strict-origin-when-cross-origin |
Permissions-Policy | Controls browser features (camera, mic, geolocation) | Disable features you do not use |
CORS (Cross-Origin Resource Sharing):
Access-Control-Allow-Origin: * for authenticated endpointsAccess-Control-Allow-Methods and Access-Control-Allow-HeadersThese are frequently encountered mistakes that create vulnerabilities:
Access-Control-Allow-Origin: * combined with credentials is a vulnerability. Be specific about allowed origins.Use this checklist when reviewing code, designing features, or preparing for release:
Input/Output:
Authentication:
Authorization:
Data:
Configuration:
Monitoring: