Auditoría de seguridad de un fragmento de código según OWASP
Revisa un fragmento de código en busca de vulnerabilidades del OWASP Top 10: hallazgos con severidad, escenario de abuso, código corregido y pruebas para comprobar que el fallo no vuelve. Pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Incluye 4 variables personalizables y se copia gratis en un clic.
Avanzado · Código · Pendiente de revisión editorial
Prompt
Actúa como ingeniero de seguridad de aplicaciones especializado en revisión de código seguro y en el OWASP Top 10.
Contexto:
- Lenguaje y framework: {{lenguaje}}
- Qué hace este código y dónde se ejecuta: {{contexto}}
- Exposición: {{exposicion}}
- Código a revisar:
```
{{codigo}}
```
Entregables:
1. Resumen ejecutivo en 3 líneas: nivel de riesgo global y el hallazgo más urgente.
2. Tabla de hallazgos: ID, línea o fragmento afectado, categoría OWASP Top 10 y CWE cuando aplique, severidad (crítica, alta, media, baja) justificada según la exposición, y nivel de confianza.
3. Para cada hallazgo: por qué es vulnerable y un escenario de abuso descrito de forma conceptual, sin cargas de explotación listas para usar.
4. Código corregido completo, usando las defensas idiomáticas de {{lenguaje}} (consultas parametrizadas, escapado contextual, validación por lista blanca, control de acceso en servidor, gestión segura de secretos).
5. Pruebas automatizadas que demuestren que la corrección funciona, incluyendo entradas maliciosas típicas.
6. Medidas de defensa en profundidad fuera del código (cabeceras, permisos mínimos, registro y alertas).
Restricciones:
- No marques como vulnerable algo que no puedas justificar; si depende de código que no veo, indícalo como [COMPLETAR: confirmar] y explica qué revisar.
- Señala también lo que está bien hecho, para no romperlo al corregir.
- Si falta contexto clave (autenticación, origen de los datos), pregúntame antes.
- Esta revisión es orientativa: para sistemas en producción con datos sensibles, recomienda una auditoría o pentest profesional.
Formato: resumen, tabla, detalle por hallazgo, código corregido y pruebas.Cómo usarlo
Pega el fragmento completo de la función o endpoint, no solo la línea sospechosa, y explica de dónde vienen los datos de entrada. Aplica las correcciones empezando por las de severidad crítica y ejecuta las pruebas propuestas.
Ejemplo de uso
Lenguaje: PHP 8 sin framework · Contexto: endpoint que busca pedidos por email del cliente · Exposición: Internet pública · Código: consulta SQL construida concatenando $_GET.
Resultado de ejemplo
1. Resumen
Riesgo crítico. El id se concatena en el SQL (inyección) y no se comprueba que la factura pertenezca al usuario (IDOR). Ambos son explotables desde Internet.
2. Hallazgos
| ID | Fragmento | Categoría | Severidad | Confianza |
|---|---|---|---|---|
| F1 | '... WHERE id = ' + req.params.id | A03 Inyección · CWE-89 | Crítica | Alta |
| F2 | Sin filtro por usuario | A01 Control de acceso · CWE-639 | Alta | Alta |
| F3 | SELECT * | A01 · exposición de datos | Media | Media |
| F4 | Promesa sin catch | A09 · errores no gestionados | Baja | Alta |
4. Código corregido
app.get('/facturas/:id', requireAuth, async (req, res, next) => {
// Lista blanca: solo enteros positivos
if (!/^[1-9]\d{0,9}$/.test(req.params.id)) {
return res.status(400).json({ error: 'id_no_valido' });
}
try {
// Consulta parametrizada (sintaxis de node-postgres: [COMPLETAR: confirmar driver])
const { rows } = await db.query(
'SELECT id, numero, fecha, total, estado FROM facturas WHERE id = $1 AND usuario_id = $2',
[req.params.id, req.user.id],
);
// 404 tanto si no existe como si es de otro usuario: no revela qué ids existen
if (rows.length === 0) return res.status(404).json({ error: 'no_encontrada' });
return res.json(rows[0]);
} catch (err) {
return next(err);
}
});
Las columnas son un ejemplo: ajústalas a lo que el cliente realmente necesita ver. Esta revisión es orientativa; antes de producción con datos de facturación, conviene una auditoría profesional…
Datos clave
- Categoría
- Programación y desarrollo · Debugging
- Tipo de resultado
- Código
- Nivel
- Avanzado
- Pensado para
- ChatGPT, Claude, Gemini y Microsoft Copilot
- Verificado en
- Pendiente de verificación editorial
- Variables
- Lenguaje y framework, Qué hace y dónde se ejecuta, Exposición y Código
- Idioma
- Español
- Precio
- Gratis, sin registro
- Actualizado
- 07/11/2026
Preguntas frecuentes
¿Puede la IA sustituir a una herramienta SAST o a un pentest?
No. Es útil como primera revisión y para entender los fallos, pero puede pasar cosas por alto o dar falsos positivos. Combínala con análisis estático, revisión humana y, en sistemas críticos, pruebas de penetración profesionales.
¿Es seguro pegar mi código en un chatbot?
Elimina antes claves, contraseñas, tokens y datos personales, y revisa la política de tu empresa sobre herramientas de IA. Si el código es confidencial, usa una versión empresarial con garantías de privacidad.
¿Para qué sirve este prompt?
Revisa un fragmento de código en busca de vulnerabilidades del OWASP Top 10: hallazgos con severidad, escenario de abuso, código corregido y pruebas para comprobar que el fallo no vuelve.
¿Con qué herramientas de IA funciona?
Está pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.
¿Cómo personalizo el prompt?
Pulsa «Personalizar» y rellena las variables (Lenguaje y framework, Qué hace y dónde se ejecuta, Exposición y Código). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.
¿Necesito experiencia para usarlo?
Es de nivel avanzado: está pensado para personas con experiencia en el tema que sepan evaluar y ajustar el resultado.
¿Este prompt es gratis?
Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.
¿Puedo fiarme del resultado de la IA?
Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.