secure-webapp

Use para orientações de segurança baseadas no OWASP ao construir, editar ou revisar aplicações web. Acione proativamente para autenticação, sessões, JWT/OAuth/OIDC, entrada do usuário, consultas a banco de dados, uploads de arquivos, endpoints de API, cookies/CORS/CSP/cabeçalhos de segurança, segredos, redirecionamentos, buscas de URLs externas, logs/erros, dependências, modelagem de ameaças, hardening, auditorias, recursos de LLM/IA como manipulação de prompts, ferramentas de agente e servidores MCP, ou classes de vulnerabilidade como XSS, SQLi, IDOR, CSRF, SSRF, open redirect, prototype pollution, deserialização, prompt injection e risco na cadeia de suprimentos.

O que é secure-webapp?

Este skill transforma o OWASP Top 10:2025, ASVS 5.0, a Cheat Sheet Series e material selecionado do WSTG em orientações práticas de segurança para aplicações web. Ele opera em múltiplos modos, como auditoria completa (audit), verificação rápida de riscos (quick-check), aplicação direta de correções (harden), loop iterativo de auditoria e correção (remediate), análise de design pré-implementação (design-review), geração de relatórios formais (report) e auto-atualização (update). O skill carrega referências específicas conforme a necessidade da tarefa, cobrindo desde entrada de dados, autenticação, autorização, tokens, APIs, frontend, segredos, criptografia, cadeia de suprimentos até recursos de IA/LLM. Suporta os principais frameworks web (Next.js, Express, Django, Flask, FastAPI, Rails, Spring, Laravel, Go) e é agnóstico de agente, funcionando em Claude Code, Codex, Gemini CLI e outros que carregam skills ou leem arquivos AGENTS.md/GEMINI.md.

Funciona com✓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 Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Codificação Segura de Aplicações Web

Transforma o OWASP Top 10:2025, ASVS 5.0, a Cheat Sheet Series e material selecionado do WSTG em orientações práticas de segurança para aplicações web.

Padrão (inline): escreva código seguro silenciosamente; sinalize apenas o problema de maior impacto que você observar por perto. Auditoria: ao usar "review", "audit", "harden", "is this secure?" ou acompanhamento de incidentes — leia assets/audit-checklist.md e produza descobertas priorizadas.

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

  • $secure-webapp audit: revisão priorizada completa; leia assets/audit-checklist.md.
  • $secure-webapp quick-check: apenas passagem de maior risco — autorização, auth/sessão, segredos, injeção/XSS, uploads, SSRF, tokens. Sem relatório completo da lista de verificação.
  • $secure-webapp harden: aplique alterações seguras diretamente onde as edições forem autorizadas; pequenos patches que preservem a arquitetura; verifique e sinalize qualquer coisa que precise de aprovação do produto.
  • $secure-webapp remediate: loop iterativo auditoria→correção; leia assets/remediate-checklist.md na íntegra primeiro.
  • $secure-webapp design-review: modelo de ameaças pré-implementação — suposições, limites de confiança, casos de abuso, controles obrigatórios, perguntas não resolvidas.
  • $secure-webapp report: escreva um relatório formal em docs/security-audit-report-YYYY-MM-DD.md; leia assets/report-template.md na íntegra primeiro e siga cada etapa. Requer uma auditoria anterior nesta sessão. Escreva no arquivo, nunca no chat.
  • $secure-webapp update: auto-atualize esta instalação executando npx --yes github:hov172/secure-webapp-skill --global. Ele verifica a versão e reinstala apenas quando uma versão mais recente existe. Flags: --claude/--codex/--gemini, --check, --force.
  • $secure-webapp maintain: atualize o próprio pacote do skill, a partir de um clone do repositório fonte — veja scripts/README.md.

Carregue apenas as referências que a tarefa precisa. Nunca carregue todas de uma vez.

Roteamento

Tarefa envolveCarregar
Strings não confiáveis interpretadas como HTML/DOM/SQL/shell/NoSQL/LDAP/regex/CSVreferences/input-handling.md
Login, cadastro, senhas, MFA, redefinição, força bruta, sessões, cookies, logoutreferences/auth-and-sessions.md
Permissões, papéis, verificações de propriedade, IDOR, isolamento de inquilinoreferences/authorization.md
JWTs, tokens de API/refresh, assinatura e verificação, OAuth/OIDC, PKCE, statereferences/tokens-and-oauth.md
Endpoints REST/GraphQL/WebSocket, limites de taxa, mass assignment, forma da resposta, uploads/downloads, path traversal, URLs pré-assinadasreferences/apis-and-files.md
Secure/HttpOnly/SameSite, CSP, CORS, CSRF, cabeçalhos, iframes, postMessagereferences/frontend-and-headers.md
Variáveis de ambiente, .env, chaves, gerenciador de segredos, modo de depuração, padrõesreferences/secrets-and-config.md
Criptografia, hash de senhas, algoritmos, gerenciamento de chaves, PIIreferences/data-and-crypto.md
Dependências, lockfiles, SBOM, CI/CD, GitHub Actions, artefatos assinadosreferences/supply-chain.md
URLs externas controladas pelo usuário, SSRF, condições de corrida, deserialização, prototype pollutionreferences/secure-coding.md
Logging, respostas de erro, stack traces, trilhas de auditoria, fail-closed, rollbackreferences/logging-and-errors.md
Design de novos recursos, modelagem de ameaças, multi-inquilinos, decisões seguras por designreferences/insecure-design.md
Recursos de LLM/IA, construção de prompts, RAG, chamadas de ferramentas de agente, servidores MCP, saída do modelo renderizada ou executadareferences/ai-and-llm.md

Lista de Vigilância Sempre Ativa

Sinalize estes itens de passagem quando vistos em código web, com uma correção concreta:

  1. Verificações de autenticação/autorização no lado do servidor ausentes em rotas de recursos. Prefira escopo em nível de consulta, como WHERE owner_id = :current_user.
  2. Segredos codificados, credenciais, segredos JWT, chaves de API ou arquivos .env comprometidos.
  3. Consultas SQL/NoSQL/shell construídas com strings. Use consultas parametrizadas, construtores seguros ou APIs argv.
  4. Senhas em texto plano ou com hash rápido. Use argon2id, scrypt ou bcrypt; PBKDF2 apenas quando necessário.
  5. Verificação JWT com algoritmos não fixados, verificações de exp/iss/aud ausentes ou segredos no código.
  6. dangerouslySetInnerHTML, v-html ou innerHTML com conteúdo do usuário. Renderize como texto ou sanitize.
  7. CORS com credenciais e origem curinga ou ecoada. Use uma lista de permissões estrita.
  8. Limites de taxa ausentes em login, cadastro, redefinição, MFA/OTP ou endpoints caros.
  9. Erros de produção verbosos, stack traces, detalhes SQL/ORM ou modo de depuração expostos aos clientes.
  10. Redirecionamentos abertos a partir de parâmetros next, returnTo ou URL não validados.
  11. SSRF a partir de URLs fornecidas pelo usuário sem listas de permissões e bloqueio de IPs privados após DNS e redirecionamentos.
  12. Logs contendo senhas, tokens, IDs de sessão, segredos ou PII desnecessário.
  13. Controles de segurança apenas no lado do cliente: campos ocultos, botões desabilitados, declarações de papel do cliente, validação apenas no frontend.
  14. Uploads de arquivos sem controles de tamanho, tipo, caminho, armazenamento ou nome gerado.
  15. Caminhos de exceção que falham abertamente em torno de autenticação, autorização, limites de taxa, feature flags ou transações.
  16. Mudanças de estado não atômicas em saldo, cota, pagamento, inventário, cupom ou token de uso único.
  17. Saída do modelo/LLM que atinge um sink sem verificação — innerHTML, shell, SQL, caminhos de arquivo, URLs fetch ou um agente downstream. Trate como entrada não confiável.
  18. Chamadas de ferramentas de agente autorizadas contra a conta de serviço em vez do usuário final, ou ferramentas genéricas run_shell/execute_sql/http_request que transformam prompt injection em RCE, SQLi ou SSRF.
  19. Texto não confiável concatenado a um prompt de sistema; segredos ou dados de outros usuários no contexto do modelo.
  20. Referências mutáveis de dependência ou ação de CI onde pinning e lockfiles são esperados — uma tag movida executa código do atacante nesse job com os segredos desse job. Avalie como Alto quando o job possui credenciais de deploy, chaves de assinatura ou direitos de publicação; o mesmo para credenciais de longa duração em nuvem onde OIDC existe. Audite todo workspace em um monorepo e sinalize um --audit-level mais fraco que high.

Comportamento

  • Escreva código seguro por padrão, sem longas explicações. Nomeie escolhas relevantes para segurança brevemente quando útil.
  • Corresponda o rigor aos riscos do aplicativo; não force controles empresariais em protótipos descartáveis.
  • Nunca gere código intencionalmente inseguro. Ofereça o equivalente seguro e declare a restrição em uma frase.
  • Para novos recursos que cruzam limites de confiança, verifique: entrada não confiável, autorização, modo de falha, dados armazenados, caminho de abuso.
  • Ao auditar, inspecione código real, faça apenas perguntas essenciais de escopo e relate severidade + localização + evidência + correção, priorizados.
  • Não cite números de requisitos OWASP a menos que solicitado.
  • Não afirme realizar testes de penetração; isto é revisão de código e design.

Escopo

Stacks web mainstream — Next.js, Express, Django, Flask, FastAPI, Rails, Spring, Laravel, Go e similares. Para áreas de nicho que as referências não cobrem, diga isso e aponte para a fonte OWASP relevante em vez de adivinhar.

Agnóstico de agente: funciona em Claude Code, Codex, Gemini CLI e qualquer outra coisa que carregue skills ou leia AGENTS.md/GEMINI.md. Onde este arquivo nomear uma ferramenta, use o equivalente do seu ambiente.

Habilidades Relacionadas