CommunityProgramación y desarrollogithub.com

secure-webapp

Úsalo para obtener orientación de seguridad basada en OWASP al construir, editar o revisar aplicaciones web. Actívalo proactivamente para autenticación, sesiones, JWT/OAuth/OIDC, entrada de usuario, consultas a bases de datos, subidas de archivos, endpoints de API, cookies/CORS/CSP/encabezados de seguridad, secretos, redirecciones, obtención de URLs externas, registro y errores, dependencias, modelado de amenazas, hardening, auditorías, funciones de LLM/IA como manejo de prompts, herramientas de agente y servidores MCP, o clases de vulnerabilidad como XSS, SQLi, IDOR, CSRF, SSRF, redirección abierta, contaminación de prototipos, deserialización, inyección de prompts y riesgo en la cadena de suministro.

¿Qué es secure-webapp?

Esta habilidad transforma los estándares OWASP Top 10:2025, ASVS 5.0, la serie de Cheat Sheets y material seleccionado de WSTG en una guía práctica de seguridad para aplicaciones web. Está diseñada para funcionar de forma agnóstica al agente, siendo compatible con Claude Code, Codex, Gemini CLI y cualquier otra herramienta que cargue habilidades o lea archivos como `AGENTS.md`/`GEMINI.md`. Ofrece múltiples modos de operación (auditoría, verificación rápida, hardening, remediación, revisión de diseño y generación de informes), cada uno invocable mediante `$secure-webapp <modo>`. Además, cuenta con una lista de verificación siempre activa que señala 20 clases de problemas de alto impacto, desde controles de autorización faltantes hasta inyección de prompts y riesgos en la cadena de suministro, y carga solo las referencias necesarias para la tarea sin saturar el contexto.

Compatible con✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/gabrielereylane/lovable-skills/tree/HEAD/.agents/skills/secure-webapp

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Codificación Segura de Aplicaciones Web

Convierte OWASP Top 10:2025, ASVS 5.0, la Serie de Cheat Sheets y material seleccionado de WSTG en una guía práctica de seguridad para aplicaciones web.

Por defecto (en línea): escribe código seguro de forma silenciosa; marca solo el problema de mayor impacto que veas cerca. Auditoría: con "revisar", "auditar", "endurecer", "¿esto es seguro?" o seguimiento de incidentes — lee assets/audit-checklist.md y produce hallazgos priorizados.

Modos, invocados como $secure-webapp <modo>:

  • $secure-webapp audit: revisión priorizada completa; lee assets/audit-checklist.md.
  • $secure-webapp quick-check: solo pase de mayor riesgo: autorización, autenticación/sesión, secretos, inyección/XSS, subidas, SSRF, tokens. Sin informe de lista de verificación completo.
  • $secure-webapp harden: aplica cambios seguros directamente donde las ediciones estén autorizadas; parches pequeños que preserven la arquitectura; verifica y marca cualquier cosa que necesite aprobación del producto.
  • $secure-webapp remediate: ciclo iterativo auditoría→arreglo; lee assets/remediate-checklist.md completo primero.
  • $secure-webapp design-review: modelo de amenazas previo a la implementación: suposiciones, límites de confianza, casos de abuso, controles imprescindibles, preguntas sin resolver.
  • $secure-webapp report: escribe un informe formal en docs/security-audit-report-YYYY-MM-DD.md; lee assets/report-template.md completo primero y sigue cada paso. Requiere una auditoría previa en esta sesión. Escribe en el archivo, nunca en el chat.
  • $secure-webapp update: autoactualiza esta instalación ejecutando npx --yes github:hov172/secure-webapp-skill --global. Verifica la versión y solo reinstala cuando existe una versión más reciente. Banderas: --claude/--codex/--gemini, --check, --force.
  • $secure-webapp maintain: actualiza el paquete de la habilidad en sí, desde un clon del repositorio fuente — consulta scripts/README.md.

Carga solo las referencias que la tarea necesite. Nunca las cargues todas a la vez.

Enrutamiento

La tarea involucraCargar
Cadenas no confiables interpretadas como HTML/DOM/SQL/shell/NoSQL/LDAP/regex/CSVreferences/input-handling.md
Inicio de sesión, registro, contraseñas, MFA, restablecimiento, fuerza bruta, sesiones, cookies, cierre de sesiónreferences/auth-and-sessions.md
Permisos, roles, comprobaciones de propiedad, IDOR, aislamiento de inquilinosreferences/authorization.md
JWTs, tokens de API/refresco, firma y verificación, OAuth/OIDC, PKCE, estadoreferences/tokens-and-oauth.md
Endpoints REST/GraphQL/WebSocket, límites de tasa, asignación masiva, forma de la respuesta, subidas/descargas, path traversal, URLs prefirmadasreferences/apis-and-files.md
Secure/HttpOnly/SameSite, CSP, CORS, CSRF, encabezados, iframes, postMessagereferences/frontend-and-headers.md
Variables de entorno, .env, claves, gestor de secretos, modo debug, valores predeterminadosreferences/secrets-and-config.md
Cifrado, hash de contraseñas, algoritmos, gestión de claves, PIIreferences/data-and-crypto.md
Dependencias, lockfiles, SBOM, CI/CD, GitHub Actions, artefactos firmadosreferences/supply-chain.md
URLs externas controladas por el usuario, SSRF, condiciones de carrera, deserialización, contaminación de prototiposreferences/secure-coding.md
Registro, respuestas de error, trazas de pila, pistas de auditoría, fail-closed, reversiónreferences/logging-and-errors.md
Diseño de nuevas funciones, modelado de amenazas, multiinquilinato, decisiones seguras por diseñoreferences/insecure-design.md
Funciones de LLM/IA, construcción de prompts, RAG, llamadas a herramientas de agente, servidores MCP, salida del modelo renderizada o ejecutadareferences/ai-and-llm.md

Lista de Verificación Siempre Activa

Señala estos de pasada cuando los veas en código web, con una solución concreta:

  1. Faltan comprobaciones de autorización/autenticación del lado del servidor en rutas de recursos. Prefiere ámbito a nivel de consulta como WHERE owner_id = :current_user.
  2. Secretos, credenciales, secretos JWT, claves de API, o archivos .env comprometidos en el código.
  3. Consultas SQL/NoSQL/shell construidas con cadenas. Usa consultas parametrizadas, constructores seguros o APIs argv.
  4. Contraseñas en texto plano o con hash rápido. Usa argon2id, scrypt o bcrypt; PBKDF2 solo donde sea necesario.
  5. Verificación JWT con algoritmos no fijados, comprobaciones de exp/iss/aud faltantes, o secretos en el código.
  6. dangerouslySetInnerHTML, v-html, o innerHTML con contenido de usuario. Renderiza como texto o desinfecta.
  7. CORS con credenciales y origen comodín o reflejado. Usa una lista blanca estricta.
  8. Límites de tasa faltantes en inicio de sesión, registro, restablecimiento, MFA/OTP, o endpoints costosos.
  9. Errores de producción verbosos, trazas de pila, detalles de SQL/ORM, o modo debug expuesto a los clientes.
  10. Redirecciones abiertas desde parámetros next, returnTo, o URL no validados.
  11. SSRF desde URLs proporcionadas por el usuario sin listas blancas y bloqueo de IPs privadas después de DNS y redirecciones.
  12. Registros que contienen contraseñas, tokens, IDs de sesión, secretos, o PII innecesaria.
  13. Controles de seguridad solo del lado del cliente: campos ocultos, botones deshabilitados, roles de cliente, validación solo en frontend.
  14. Subidas de archivos sin controles de tamaño, tipo, ruta, almacenamiento, o nombre generado.
  15. Rutas de excepción fail-open alrededor de autenticación, autorización, límites de tasa, flags de funcionalidad o transacciones.
  16. Cambios de estado no atómicos en saldo, cuota, pago, inventario, cupón, o token de un solo uso.
  17. Salida del modelo/LLM que llega a un sink sin verificar — innerHTML, shell, SQL, rutas de archivo, URLs fetch, o un agente descendente. Trátala como entrada no confiable.
  18. Llamadas a herramientas de agente autorizadas contra la cuenta de servicio en lugar del usuario final, o herramientas genéricas run_shell/execute_sql/http_request que convierten la inyección de prompts en RCE, SQLi o SSRF.
  19. Texto no confiable concatenado en un prompt del sistema; secretos o datos de otros usuarios en el contexto del modelo.
  20. Referencias mutables de dependencias o acciones de CI donde se esperan pinning y lockfiles: una etiqueta movida ejecuta código del atacante en ese trabajo con los secretos de ese trabajo. Califica como Alto cuando el trabajo tiene credenciales de despliegue, claves de firma o derechos de publicación; igual para credenciales de nube de larga duración donde existe OIDC. Audita cada espacio de trabajo en un monorepo y marca un --audit-level inferior a high.

Comportamiento

  • Escribe código seguro por defecto, sin explicaciones largas. Nombra las decisiones de seguridad relevantes brevemente cuando sea útil.
  • Ajusta el rigor según la importancia de la aplicación; no impongas controles empresariales en prototipos desechables.
  • Nunca generes código intencionalmente inseguro. Ofrece la alternativa segura y explica la restricción en una frase.
  • Para nuevas funciones que crucen límites de confianza, verifica: entrada no confiable, autorización, modo de fallo, datos almacenados, ruta de abuso.
  • Al auditar, inspecciona código real, haz solo preguntas de alcance esenciales, e informa gravedad + ubicación + evidencia + corrección, priorizados.
  • No cites números de requisitos de OWASP a menos que se te pida.
  • No pretendas realizar pruebas de penetración; esto es revisión de código y diseño.

Alcance

Stacks web principales — Next.js, Express, Django, Flask, FastAPI, Rails, Spring, Laravel, Go y similares. Para áreas especializadas que las referencias no cubren, indícalo y apunta a la fuente relevante de OWASP en lugar de adivinar.

Agnóstico al agente: funciona en Claude Code, Codex, Gemini CLI y cualquier otra herramienta que cargue habilidades o lea AGENTS.md/GEMINI.md. Cuando este archivo nombre una herramienta, usa el equivalente de tu entorno.

Skills relacionados