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:

  1. Claude recupera el contexto de la tarea: el prompt especializado de auditoría y el conocimiento relevante.
  2. Claude carga el checklist de seguridad aplicado (CSRF, prepared statements, hashing de contraseñas, headers, uploads, sesiones).
  3. 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:

  1. Prepared statements en todas las queries PDO
  2. Tokens CSRF en todos los formularios POST
  3. Contraseñas hasheadas con password_hash(PASSWORD_BCRYPT)
  4. Headers de seguridad en .htaccess
  5. Validación de uploads: extensión whitelist + MIME type + nombre único
  6. Rate limiting en /login (5 intentos, bloqueo temporal)
  7. Sesiones con httponly, samesite: Lax, secure
  8. Output escapado con htmlspecialchars() en todo lo renderizado
  9. Errores silenciados en producción (display_errors = Off)
  10. Paths sensibles bloqueados en robots.txt y .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.