Bloquear XML-RPC en WordPress

Última revisión: 2 de octubre de 2021

Una de las ventajas de WordPress es su flexibilidad a la hora de ser utilizado por aplicaciones de terceros, y para ellos muchas utilizan el estándar XML-RPC que permite la interacción con el número del gestor de contenidos. Obviamente, si desactivas esta tecnología no podrás usar programas como Open Live Writer o herramientas como IFTTT e incluso la propia App de WordPress para Android o iOS.

Existe una herramienta muy interesante para verificar el funcionamiento o no de esta tecnología, llamada WordPress XML-RPC Validation Service.

Deshabilitar XML-RPC

add_filter('xmlrpc_enabled', '__return_false');

Instrucciones paso a paso

  1. Crea el plugin o descárgalo ya creado (descomprime el fichero ZIP).
  2. Accede por FTP a la carpeta [/wp-content/mu-plugins/]. Si no tienes esta carpeta, créala.
  3. Sube por FTP el fichero [wpdanger-xmlrpc.php] a la carpeta [/wp-content/mu-plugins/].
  4. Cuando entres en el panel de administración de tu WordPress, en la zona de Plugins tendrás una sección nueva de plugins Imprescindibles donde aparecerá. Recuerda que al ser Imprescindible no podrás activarlo ni desactivarlo.

Deshabilitar Pingbacks XML-RPC

function wpdanger_xmlrpc_ping($methods) {
  unset($methods['pingback.ping']);
  unset($methods['pingback.extensions.getPingbacks']);
  return $methods;
}
function wpdanger_xmlrpc_header($headers) {
  unset($headers['X-Pingback']);
  return $headers;
}
add_filter('xmlrpc_methods', 'wpdanger_xmlrpc_ping', 9999, 2);
add_filter('wp_headers', 'wpdanger_xmlrpc_header', 9999, 2);

Instrucciones paso a paso

  1. Crea el plugin o descárgalo ya creado (descomprime el fichero ZIP).
  2. Accede por FTP a la carpeta [/wp-content/mu-plugins/]. Si no tienes esta carpeta, créala.
  3. Sube por FTP el fichero [wpdanger-xmlrpc-pingback.php] a la carpeta [/wp-content/mu-plugins/].
  4. Cuando entres en el panel de administración de tu WordPress, en la zona de Plugins tendrás una sección nueva de plugins Imprescindibles donde aparecerá. Recuerda que al ser Imprescindible no podrás activarlo ni desactivarlo.

Permitir accesos limitados a IP

Como este método puede ser muy agresivo, te puedes plantear otras opciones más ligeras que en un futuro cercano te permitan añadir, por ejemplo, una IP desde la que tú puedas acceder, pero el resto no.

En Apache HTTPD (dentro del fichero .htaccess):

<Files xmlrpc.php>
  order deny, allow
  deny from all
  allow from 8.8.8.8
</Files>

Has de cambiar 8.8.8.8 por tu dirección IP

En nginx (dentro del fichero de configuración del sitio):

location = /xmlrpc.php {
  limit_except POST {
    deny all;
  }
 allow 8.8.8.8;
  access_log off;
  log_not_found off;
}

Has de cambiar 8.8.8.8 por tu dirección IP


Seguir con Seguridad para WordPress


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.