Sur nos serveurs web, le fichier xmlrpc.php de WordPress est fermé par défaut. Cela protège votre site web contre l'une des voies d'intrusion les plus utilisées et garde votre site rapide. Vous avez malgré tout besoin de xmlrpc.php ? Vous l'ouvrez alors en quelques clics, pour vos propres adresses IP ou (déconseillé) pour tout le monde. Voici comment procéder.


1. Qu'est-ce que xmlrpc.php ?

xmlrpc.php est une ancienne interface de WordPress. Des programmes externes peuvent l'utiliser pour se connecter et publier des articles, par exemple un logiciel de blog sur votre ordinateur. Les pingbacks (notifications indiquant qu'un autre site fait un lien vers le vôtre) passent aussi par ce fichier.

Les composants modernes de WordPress n'utilisent presque plus xmlrpc.php. Le tableau de bord, l'éditeur de blocs et la plupart des extensions passent par l'API REST.


2. Pourquoi xmlrpc.php est-il fermé par défaut ?

xmlrpc.php est la cible favorite des attaquants :

  • Deviner des mots de passe à grande échelle. Une seule requête vers xmlrpc.php permet d'essayer des centaines de mots de passe à la fois. Un mot de passe faible est ainsi vite trouvé.
  • Votre site web ralentit. Chaque tentative démarre WordPress. Des milliers de tentatives par jour consomment de la puissance de calcul dont vos visiteurs ont besoin.
  • Utilisation abusive contre d'autres sites. Via les pingbacks, votre site web peut être utilisé pour attaquer d'autres sites web.

En fermant xmlrpc.php par défaut, ces attaques sont bloquées avant même d'atteindre votre site web.


3. Mon site web fonctionne-t-il toujours normalement ?

Oui. Votre site web, le tableau de bord WordPress, la page de connexion et presque toutes les extensions fonctionnent comme d'habitude. En détail :

  • Jetpack et WordPress.com continuent de fonctionner. Nous les laissons toujours passer.
  • L'application WordPress fonctionne si votre site est connecté via Jetpack. Si vous n'arrivez plus à vous connecter dans l'application, ouvrez xmlrpc.php pour votre propre adresse IP (voir ci-dessous).
  • Les pingbacks d'autres sites web n'arrivent plus. Pour la plupart des sites, c'est plutôt une bonne chose, car les pingbacks sont en grande partie du spam.
  • Vous utilisez un logiciel de blog externe ou une intégration qui a besoin de xmlrpc.php ? Ouvrez-le alors pour l'adresse IP de ce logiciel ou de ce service.

Vous voyez le message 403 Forbidden sur xmlrpc.php ? Cela signifie qu'il est fermé et que la protection fonctionne.


4. Ouvrir xmlrpc.php via DirectAdmin (recommandé)

C'est la méthode la plus simple. Vous n'avez aucun fichier à modifier.

  • Connectez-vous à DirectAdmin.
  • Dans le menu, allez dans Extra Features (fonctionnalités supplémentaires) et cliquez sur XML-RPC (WordPress).
  • Choisissez le domaine en haut à droite.
  • Choisissez l'un des trois modes :
    • Fermé (recommandé, par défaut).
    • Ouvert pour mes adresses IP: saisissez une adresse IP par ligne. Le bouton Ajouter reprend directement votre adresse IP actuelle.
    • Ouvert pour tout le monde: déconseillé, voir la section 7. Vous devez d'abord confirmer que vous comprenez les risques.
  • Cliquez sur Enregistrer. La modification est active en moins d'une minute.

Le réglage s'applique à tout le domaine, y compris à une installation WordPress dans un sous-dossier.


5. Ouvrir xmlrpc.php via .htaccess (manuellement)

Vous préférez travailler vous-même dans vos fichiers ? Ouvrez alors, via le Gestionnaire de fichiers (File Manager) de DirectAdmin ou via FTP, le fichier .htaccess dans le dossier public_html de votre domaine, et placez la règle tout en haut.

Ouvrir pour une seule adresse IP

Remplacez 203.0.113.10 par votre propre adresse IP. Placez une barre oblique inverse devant chaque point :

SetEnvIf Remote_Addr "^203\.0\.113\.10$" !t7_xmlrpc_block

Plusieurs adresses IP ? Utilisez alors une ligne par adresse. Une adresse IPv6 s'écrit telle quelle, par exemple :

SetEnvIf Remote_Addr "^2001:db8::10$" !t7_xmlrpc_block

Ouvrir pour tout le monde (déconseillé)

SetEnvIf Remote_Addr "." !t7_xmlrpc_block

Pour refermer, supprimez simplement la règle.


6. Attention : n'utilisez pas « Require ip » ni « Require all granted »

Sur internet, vous trouvez souvent des exemples comme <Files xmlrpc.php> Require ip ... </Files>. Ne les utilisez pas sur nos serveurs. Sur nos serveurs, une telle règle ouvre en effet xmlrpc.php pour tout le monde, et pas seulement pour l'adresse IP indiquée. Require all granted désactive en outre notre protection supplémentaire contre les bots d'attaque connus.

Utilisez donc toujours les règles de la section 5, ou le bouton dans DirectAdmin.


7. Pourquoi nous déconseillons « ouvert pour tout le monde »

Lorsque xmlrpc.php est ouvert pour tout le monde, les attaquants peuvent continuer à essayer des mots de passe jour et nuit sur votre site web. Cela augmente le risque d'intrusion et ralentit votre site web. Le service que vous utilisez a une adresse IP fixe ? Ouvrez alors xmlrpc.php uniquement pour cette adresse. Ne choisissez « ouvert pour tout le monde » que s'il n'y a vraiment pas d'autre solution, et utilisez alors au minimum :

  • un mot de passe fort et unique pour chaque utilisateur WordPress ;
  • la validation en deux étapes pour les administrateurs.

8. Besoin d'aide ?

Vous n'y arrivez pas, ou quelque chose ne fonctionne plus depuis que xmlrpc.php est fermé ? Contactez notre support (par chat, ticket ou e-mail, en français ; par téléphone en néerlandais et en anglais). Indiquez-nous le domaine concerné ainsi que le logiciel ou le service en question. Nous configurerons alors xmlrpc.php correctement avec vous.

Vous cherchez un hébergement WordPress ? Voir nos offres.