diff --git a/docs/cutover/RUNBOOK-cutover-wordpress.md b/docs/cutover/RUNBOOK-cutover-wordpress.md old mode 100755 new mode 100644 index e46219d..c675244 --- a/docs/cutover/RUNBOOK-cutover-wordpress.md +++ b/docs/cutover/RUNBOOK-cutover-wordpress.md @@ -108,6 +108,26 @@ Doble cinturón: además del rol retirado, el mu-plugin `fea-security-blocked-us `wp_authenticate_user` y `allow_password_reset` para esos tres IDs. **Va en el manifiesto de `docs/cutover/mu-plugins-manifest.txt`, no en un glob `fea-*`** — un glob se lo dejaría fuera. +El script retira además la opción **`wordfence_core_options`**, que **no es de Wordfence**: es el +payload de SEO spam que dejó el atacante (div oculto con enlaces a un casino, cifrado con un césar +de una letra). Está inerte —quien lo leía era `wp-highlits`, en cuarentena— pero **viaja dentro del +dump y cada import lo reintroduce**. + +## 6b. Plugins de seguridad — son 8, no 7 + +A los 7 plugins de producción se añade **Wordfence** (8.2.2, instalado limpio desde wordpress.org el +31-jul). Motivo: CDMON tenía **ModSecurity** delante a nivel de hosting —fue lo que detectó las +subidas de `wp-cl.php` y `health-check.php` en el #183—, y **en Hetzner con Traefik no hay WAF +ninguno**. Sin Wordfence, el servidor nuevo estrenaría con una capa defensiva menos que la que tenía +el sitio comprometido. + +⚠️ Wordfence queda con **protección básica** (a nivel de plugin). El *extended protection* exige +configurar `auto_prepend_file` desde su asistente; se hace **después** del cutover y con calma, no +en la ventana. + +⚠️ Wordfence y `limit-login-attempts-reloaded` solapan en el bloqueo de login. No es un conflicto, +pero conviene decidir cuál manda para no acabar con dos contadores distintos. + ## 7. Quitar el WP_HOME/WP_SITEURL del staging ```