Auditoria de segurança de um excerto de código segundo a OWASP
Analise um excerto de código à procura de vulnerabilidades do OWASP Top 10: falhas com severidade, cenário de abuso, código corrigido e testes para garantir que o problema não volta. Pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Inclui 4 variáveis personalizáveis e pode copiá-lo gratuitamente com um clique.
Avançado · Código · Pendente de revisão editorial
Prompt
Atua como engenheiro de segurança aplicacional especializado em revisão de código seguro e no OWASP Top 10.
Contexto:
- Linguagem e framework: {{linguagem}}
- O que faz este código e onde corre: {{contexto}}
- Exposição: {{exposicao}}
- Código a rever:
```
{{codigo}}
```
Entregáveis:
1. Resumo executivo em 3 linhas: nível de risco global e a falha mais urgente.
2. Tabela de falhas: ID, linha ou excerto afetado, categoria OWASP Top 10 e CWE quando aplicável, severidade (crítica, alta, média, baixa) justificada pela exposição, e nível de confiança.
3. Para cada falha: porque é vulnerável e um cenário de abuso descrito de forma concetual, sem payloads de exploração prontos a usar.
4. Código corrigido completo, com as defesas idiomáticas de {{linguagem}} (consultas parametrizadas, codificação de saída por contexto, validação por lista de permissões, controlo de acesso no servidor, gestão segura de segredos).
5. Testes automatizados que provem que a correção funciona, incluindo entradas maliciosas típicas.
6. Medidas de defesa em profundidade fora do código (cabeçalhos, privilégio mínimo, registo e alertas).
Restrições:
- Não assinales como vulnerável algo que não consigas justificar; se depender de código que não mostrei, marca como [PREENCHER: confirmar] e explica o que verificar.
- Indica também o que está bem feito, para não o estragar na correção.
- Se faltar contexto essencial (autenticação, origem dos dados), pergunta-me primeiro.
- Esta revisão é orientativa: para sistemas em produção com dados sensíveis, recomenda uma auditoria ou um teste de intrusão profissional.
Formato: resumo, tabela, detalhe por falha, código corrigido e testes.Como utilizar
Cola a função ou o endpoint completo, não só a linha suspeita, e explica de onde vêm os dados de entrada. Corrige primeiro as falhas críticas e corre os testes sugeridos antes do merge.
Exemplo de utilização
Linguagem: PHP 8 sem framework · Contexto: endpoint que procura encomendas pelo email do cliente · Exposição: Internet pública · Código: consulta SQL construída a concatenar $_GET.
Exemplo de resultado
1. Resumo
Risco crítico. O id é concatenado no SQL (injeção) e nada verifica se a fatura pertence ao utilizador (IDOR). Ambos são exploráveis a partir da Internet.
2. Constatações
| ID | Excerto | Categoria | Gravidade | Confiança |
|---|---|---|---|---|
| F1 | '... WHERE id = ' + req.params.id | A03 Injeção · CWE-89 | Crítica | Alta |
| F2 | Sem filtro por utilizador | A01 Controlo de acesso · CWE-639 | Alta | Alta |
| F3 | SELECT * | A01 · exposição de dados | Média | Média |
| F4 | Promise sem catch | A09 · erros não tratados | Baixa | Alta |
4. Código corrigido
app.get('/faturas/:id', requireAuth, async (req, res, next) => {
// Lista branca: só inteiros positivos
if (!/^[1-9]\d{0,9}$/.test(req.params.id)) {
return res.status(400).json({ error: 'id_invalido' });
}
try {
// Consulta parametrizada (sintaxe node-postgres: [COMPLETAR: confirmar o driver])
const { rows } = await db.query(
'SELECT id, numero, data_emissao, total, estado FROM faturas WHERE id = $1 AND utilizador_id = $2',
[req.params.id, req.user.id],
);
// 404 quer não exista quer seja de outro: não revela que ids existem
if (rows.length === 0) return res.status(404).json({ error: 'nao_encontrada' });
return res.json(rows[0]);
} catch (err) {
return next(err);
}
});
As colunas são um exemplo: limita-as ao que o cliente precisa mesmo de ver. Esta revisão é orientativa; antes de ir para produção com dados de faturação, convém uma auditoria profissional…
Dados-chave
- Categoria
- Programação e desenvolvimento · Depuração
- Tipo de resultado
- Código
- Nível
- Avançado
- Pensado para
- ChatGPT, Claude, Gemini e Microsoft Copilot
- Verificado em
- Pendente de verificação editorial
- Variáveis
- Linguagem e framework, O que faz e onde corre, Exposição e Código
- Idioma
- Português
- Preço
- Gratuito, sem registo
- Atualizado
- 07/11/2026
Perguntas frequentes
A IA pode substituir uma ferramenta SAST ou um teste de intrusão?
Não. Serve como primeira análise e para perceber as falhas, mas pode deixar escapar problemas ou dar falsos positivos. Combina-a com análise estática, revisão humana e, em sistemas críticos, testes de intrusão profissionais.
É seguro colar o meu código num chatbot?
Remove antes chaves, palavras-passe, tokens e dados pessoais e confirma a política da tua empresa sobre ferramentas de IA. Para código confidencial, usa um plano empresarial com garantias de privacidade.
Para que serve este prompt?
Analise um excerto de código à procura de vulnerabilidades do OWASP Top 10: falhas com severidade, cenário de abuso, código corrigido e testes para garantir que o problema não volta.
Com que ferramentas de IA funciona?
Foi pensado para ChatGPT, Claude, Gemini e Microsoft Copilot. Ainda não o verificámos nestas ferramentas, pelo que os resultados podem variar entre elas.
Como personalizo o prompt?
Clique em “Personalizar” e preencha as variáveis (Linguagem e framework, O que faz e onde corre, Exposição e Código). O texto atualiza-se instantaneamente e pode depois copiá-lo com um clique. Os valores ficam guardados apenas no seu navegador.
Preciso de experiência para o utilizar?
É de nível avançado: destina-se a pessoas com experiência no tema, capazes de avaliar e ajustar o resultado.
Este prompt é gratuito?
Sim. Todos os prompts do HomeCasa Prompts são gratuitos, sem registo nem subscrição. Pode também utilizá-los em projetos profissionais.
Posso confiar no resultado da IA?
Trate-o como um rascunho de qualidade: verifique sempre os dados, os números e as afirmações importantes antes de publicar ou tomar decisões.