# Política y límites de seguridad

## Uso seguro

- Utiliza HTTPS y un token aleatorio exclusivo de al menos 32 caracteres; se recomiendan 48.
- Restringe `allowed_ips` siempre que conozcas la IP exacta desde la que vas a acceder.
- Considera el modo HTTP una excepción de emergencia: dura 30 minutos, exige IP, bloquea credenciales manuales y no permite exportaciones.
- No compartas `config.php`, credenciales, informes sin revisar ni registros completos.
- Conserva una copia de seguridad antes de seguir cualquier solución manual.
- Elimina la herramienta del servidor mediante FTP cuando termine el diagnóstico.
- Si sospechas una intrusión, conserva primero una copia forense y utiliza un equipo conocido como seguro.

## Controles de la versión 0.2.0

La aplicación no incluye ni ejecuta `wp-config.php`, WordPress, plugins, temas o archivos inspeccionados. Las consultas generadas por su adaptador MySQL son exclusivamente `SELECT`. Los informes pasan por redacción y no incluyen los valores de conexión conocidos por la herramienta.

La autorización crea en el servidor una activación firmada de dos horas con HTTPS o de 30 minutos en el modo HTTP de emergencia. No se prolonga con la actividad. La sesión queda ligada a esa activación y también vence por inactividad. Para reactivar debe borrarse `var/activation.php` y rotarse el token mediante FTP.

Los intentos fallidos se guardan de forma firmada, acotada y sin conservar la IP en claro: cinco por IP o treinta globales dentro de diez minutos. Si no puede persistir su estado, el acceso falla cerrado. No se confía en `X-Forwarded-For`; `X-Forwarded-Proto` solo se acepta desde una IP incluida expresamente en `trusted_proxy_ips`.

Antes de autorizar, las respuestas no confirman la presencia, versión o ruta de WordPress. Después, la herramienta comprueba exclusivamente `allowed_root`, normaliza los registros a categoría, ruta relativa y línea, y convierte los errores MySQL en categorías cerradas. Las credenciales manuales solo están disponibles en HTTPS, permanecen cifradas durante la sesión y se eliminan tras la fase MySQL. Las exportaciones son solicitudes POST protegidas con CSRF.

La aplicación no modifica ni repara la instalación. Una recomendación manual debe revisarse y aplicarse fuera de la herramienta.

## Límites

Ejecutar el diagnóstico dentro de un servidor comprometido no convierte ese servidor en confiable. Un atacante con control del alojamiento podría leer procesos, sesiones o archivos, alterar resultados y manipular la propia herramienta.

Un análisis parcial o sin hallazgos no demuestra que WordPress esté limpio, sea seguro o funcione correctamente. El producto de seguridad y malware es un proyecto separado.

## Informar de una vulnerabilidad

No publiques contraseñas, tokens, datos de clientes, rutas de producción o código malicioso activo. La distribución pública deberá añadir un canal privado real y supervisado antes de anunciarse fuera del repositorio.
