Las auditorías de seguridad son fáciles de saltear. No porque al desarrollador no le importe la seguridad, sino porque sin un sistema siempre se revisa lo mismo y se omite lo demás. OWASP Top 10 es el estándar, pero revisarlo de memoria no escala.
El problema con las auditorías ad-hoc
Cuando le pedís a Claude "revisá la seguridad de este archivo" sin contexto específico, va a mencionar SQL injection, XSS y quizás validación de entrada. Los mismos tres puntos de siempre. No porque no sepa más, sino porque sin un marco explícito tiende a lo general.
Los puntos que más se omiten en proyectos PHP vanilla:
- CSRF en formularios (especialmente en paneles administrativos)
- Validación estricta de uploads (extensión, MIME, nombre único)
- Rate limiting en endpoints de autenticación
- Headers de seguridad en .htaccess (X-Frame-Options, CSP, Referrer-Policy)
- Exposición de información en mensajes de error en producción
Un flujo de auditoría que funciona
La solución es darle a Claude un checklist estructurado y conocimiento específico del stack. Con un servidor MCP que expone esos recursos, el flujo es:
- Claude recupera el contexto de la tarea: el prompt especializado de auditoría y el conocimiento relevante.
- Claude carga el checklist de seguridad aplicado (CSRF, prepared statements, hashing de contraseñas, headers, uploads, sesiones).
- Claude aplica cada ítem al código real del proyecto y reporta ítem por ítem.
Los 10 puntos que nunca deberían omitirse
Para proyectos PHP vanilla en Hostinger o hosting compartido:
- Prepared statements en todas las queries PDO
- Tokens CSRF en todos los formularios POST
- Contraseñas hasheadas con
password_hash(PASSWORD_BCRYPT) - Headers de seguridad en
.htaccess - Validación de uploads: extensión whitelist + MIME type + nombre único
- Rate limiting en
/login(5 intentos, bloqueo temporal) - Sesiones con
httponly,samesite: Lax,secure - Output escapado con
htmlspecialchars()en todo lo renderizado - Errores silenciados en producción (
display_errors = Off) - Paths sensibles bloqueados en
robots.txty.htaccess
Una auditoría completa con este checklist toma entre 30 y 60 minutos según el tamaño del proyecto. Sin el checklist, podés tardar lo mismo y cubrir la mitad.
Si el checklist de tu equipo vive en un servidor MCP propio, deja de depender de que alguien se acuerde de pegarlo: la IA lo consulta sola en cada auditoría.
