Annonce

Important : WordPress 2.5.1 est disponible.
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.

#1 01-05-2008 09:55:25

#Traceur
Connaisseur WP
Date d'inscription: 24-07-2006
Messages: 16

Comment utiliser xmlrpc.php ??

Bonjour,

Je voudrais utiliser le xmlrpc.php mais je n’y arrive pas. J’ai trouvé un exemple "particulier" qui a pour avantage d’être assez simple, mais cela ne marche pas alors que j’ai beau le tester sur mon blog.
Comment faire ?  C’est censé édité le contenu d’un article.

<?php
$host = 'www.mon-site-web.net'; // blog url
$page = '/xmlrpc.php';
$data = '<?xml version="1.0" ?>
         <methodcall>
                 <methodname>metaWeblog.editPost</methodname>
                 <params>
                         <value>
                                 <i4>post_ID</i4>
                         </value>
                         <value>
                                 <string>username</string>
                         </value>
                         <value>
                                 <string>password</string>
                         </value>
                         <struct>
                                 <member>
                                         <name>post_type</name>
                                        <value>page</value>
                                 </member>
                                 <member>
                                         <name>title</name>
                                         <value>
                                                 <string>Pwnd</string>
                                         </value>
                                 </member>
                                 <member>
                                         <name>description</name>
                                         <value>Test</value>
                                 </member>
                         </struct>
                 </params>
         </methodcall>';

$exploited = fsockopen($host, 80, $errorNumber, $errorString);
$requestHeader = " ".$page."  HTTP/1.1\r\n";
$requestHeader.= "Host: ".$host."\r\n";
$requestHeader.= "User-Agent:      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
$requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";
$requestHeader.= "Content-Length: ".strlen($data)."\r\n";
$requestHeader.= "Connection: close\r\n\r\n";
$requestHeader.= $data;
fwrite($exploited, $requestHeader );

echo 'done';
>

A la place de username je mets mon pseudo, à la place de password je mets mon mot de passe, et a la place de post_ID je mets le n° de l’article.
Je suis admin sur mon blog, j’ai donc tous les droits.

Dernière modification par #Traceur (01-05-2008 09:59:34)

Hors ligne

 

#2 01-05-2008 12:21:22

AmO
Joueur de pétanque.
Lieu: France - Nord
Date d'inscription: 19-09-2005
Messages: 5002
Site web

Re: Comment utiliser xmlrpc.php ??


Mais vous savez, je crois pas qu'il y ai de bon ou mauvais blog... Enfin si je devais résumer ma vie aujourd'hui avec vous, je dirais que c'est d'abord des rencontres, des blogs qui m'ont tendu la main peut être à un moment où je ne pouvais pas, où j'étais seul chez moi.
http://www.wordpress-fr.net/wp-content/uploads/jmwp.jpg
WP-Box: Travailler avec un spécialiste des technologies WordPress !

Hors ligne

 

#3 01-05-2008 13:16:01

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 116
Site web

Re: Comment utiliser xmlrpc.php ??

L'exemple que tu donne sers à editer un billet ! pour en creer un il faut envoyer cette chaine à php:

Code:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <methodCall>
  4.   <methodName>wp.newPage</methodName>
  5.   <params>
  6.     <param>
  7.       <value><int>25969</int></value>
  8.     </param>
  9.     <param>
  10.       <value><string>login</string></value>
  11.     </param>
  12.     <param>
  13.       <value><string>mot-de-passe</string></value>
  14.     </param>
  15.     <param>
  16.       <value>
  17.         <struct>
  18.           <member>
  19.             <name>title</name>
  20.             <value><string>Titre du billet</string></value>
  21.           </member>
  22.           <member>
  23.             <name>description</name>
  24.             <value><string>contenu du biillet</string></value>
  25.           </member>
  26.           <member>
  27.             <name>mt_keywords</name>
  28.             <value><string>tag1,tag2</string></value>
  29.           </member>
  30.           <member>
  31.             <name>categories</name>
  32.             <value>
  33.               <array>
  34.                 <data>
  35.                   <value>catégorie-1</value>
  36.                 </data>
  37.               </array>
  38.             </value>
  39.           </member>
  40.         </struct>
  41.       </value>
  42.     </param>
  43.     <param>
  44.       <value><int>1</int></value>
  45.     </param>
  46.   </params>
  47. </methodCall>

Tu envois ça sous forme de chaine au fichier xml-rpc.php, en POST (contentType: 'text/xml').

Par contre de mon coté j'ai eu des soucis d'encodage d'entitées html à la réception dans le fichier xml-rpc.php, j'ai du ajouter un petit bout de code perso pour le decodage ...

Hors ligne

 

#4 01-05-2008 16:22:07

#Traceur
Connaisseur WP
Date d'inscription: 24-07-2006
Messages: 16

Re: Comment utiliser xmlrpc.php ??

Je sais qu’il sert à éditer un billet, par contre je ne comprends pas pourquoi cela ne fonctionne pas ?

Hors ligne

 

#5 01-05-2008 19:08:00

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 116
Site web

Re: Comment utiliser xmlrpc.php ??

Parcequ'il n'est pas construi comme il faut ?

En faisant une recherche de 10 secondes: metaweblog_api, dans l'exemple sur cette page on voit clairement que le xml est différent.

Après peut-ètre il y a un soucis avec la manière dont tu appel la page xml-rpc.php ... Essais avec un simple formulaire ....

Hors ligne

 

#6 07-05-2008 15:11:23

#Traceur
Connaisseur WP
Date d'inscription: 24-07-2006
Messages: 16

Re: Comment utiliser xmlrpc.php ??

J’ai reproduit cet exemple, et il fonctionne. Savez vous si je peux envoyer un cookie d’identification plutôt que le mot de passe en clair ? Si oui, comment?

Hors ligne

 

#7 07-05-2008 22:41:38

#Traceur
Connaisseur WP
Date d'inscription: 24-07-2006
Messages: 16

Re: Comment utiliser xmlrpc.php ??

Personne ?

Hors ligne

 

#8 08-05-2008 14:32:26

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 116
Site web

Re: Comment utiliser xmlrpc.php ??

Alors via un simple POST, je ne pense pas que ce soit possible de se passer du mot de passe et login, par contre je sais que certains éditeurs de blog externe online utilisent une méthode qui n'envoie pas le mot de passe et login en clair, mais je n'ai aucune idées de comment ils procèdent ...

Mais si il n'y a que toi qui utilise le script d'envoi vers xmlrpc.php, ça ne pose pas vraiment de soucis (juste penser à protéger la page du script). PAr contre si ce script est publique, là c'est un réel problème ...

Mais il reste un solution (un peu à l'arrache). Tu envois le login et le mdp crypté (sha, md5, etc ...) et tu modifies le xmlrpc.php pour qu'il compare/decode le login et mdp seulement si le referer est bien ton script et si la méthode (edition, nouveau billet, ...) est la bonne.

Mais à quoi va te servir ce script ?

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.16
© Copyright 2005-2006 WordPress France

Tous droits réservés - wordpress-fr.net © 2005-2006

  • RSS
WPfr ValidatorXhtml ValidatorCSS mysql Php GetFirefox
Design par AmO - Crédits - Equipe WordPress France

Réseau International : Hongrie - Allemagne - Grèce - Italie - Japon - Corée - Suisse - Turquie - USA