Categories
PHP WordPress

WordPress: Llamadas múltiples en XML-RPC

Según WikiPedia, XML-RPC es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes, creado por Dave Winer (Userland Software) y Microsoft en 1998.

A pesar de que este protocolo tiene mucho más tiempo de lo que yo con el uso de computadoras, recién hace 3 meses que conozco de la existencia de éste y algo que me llama la atención es el soporte para invocar múltiples métodos en una sola petición HTTP -- aunque en realidad depende si el servidor XML-RPC implementa/soporta este tipo de llamadas.

Por ejemplo, el servidor XML-RPC de WordPress soporta este tipo de llamadas gracias a Incutio XML-RPC Library:

php:

<?php
require_once( './class-IXR.php' );

$client = new IXR_ClientMulticall( 'http://www.buayacorp.com/xmlrpc.php' );

$client->debug = true;

$client->addCall('demo.sayHello');
$client->addCall('demo.addTwoNumbers', 10, 1);

$client->query();

print_r($client->getResponse());
?>

Lo que se envía y recibe del servidor:

code:

POST /xmlrpc.php HTTP/1.0
Host: www.buayacorp.com
Content-Type: text/xml
User-Agent: The Incutio XML-RPC PHP Library (multicall client)
Content-length: 652

<?xml version="1.0"?>
<methodCall>
<methodName>system.multicall</methodName>
<params>
<param><value><array><data>
  <value><struct>
  <member><name>methodName</name><value><string>demo.sayHello</string></value></member>
  <member><name>params</name><value><array><data>
</data></array></value></member>
</struct></value>
  <value><struct>
  <member><name>methodName</name><value><string>demo.addTwoNumbers</string></value></member>
  <member><name>params</name><value><array><data>
  <value><int>10</int></value>
  <value><int>1</int></value>
</data></array></value></member>
</struct></value>
</data></array></value></param>
</params></methodCall>

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<array><data>
<value><array><data>
<value><string>Hello!</string></value>
</data></array></value>
<value><array><data>
<value><int>11</int></value>
</data></array></value>
</data></array>
</value>
</param>
</params>
</methodResponse>

Array
(
    [0] => Array
        (
            [0] => Hello!
        )

    [1] => Array
        (
            [0] => 11
        )

)

Haciendo uso de este tipo de llamadas y gracias a ciertas características de WordPress, fue posible hacer funcionar el tan publicitado exploit para una vulnerabilidad que afecta a casi todas las versiones de este CMS.

Categories
.NET

Configurar opciones de envío de correo en .NET 2

Una forma para que las instancias de la clase SmtpClient se auto configuren es especificar sus valores en la sección mailSettings del archivo de configuración (funciona tanto en aplicaciones Web como de escritorio).

xml:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network
          host="smtp.dominio.com"
          port="25"
          userName="usuario@dominio.com"
          password="contraseña"
        />

      </smtp>
    </mailSettings>
  </system.net>
</configuration>

Las instancias de SmtpClient usan los valores definidos en esa sección si es que no se especifica nada al momento de crear el objeto:

csharp:

using System.Net.Mail;

class Program
{
    static void Main()
    {
        MailMessage mensaje = new MailMessage("usuario@dominio.com", "alex@dominio.com");
        mensaje.Subject = "Prueba";
        mensaje.Body = "Contenido";

        SmtpClient client = new SmtpClient();

        client.Send(mensaje);
    }
}

Una limitación de este método, es que no hay forma de especificarle a través del archivo de configuración, que use SSL para la autenticación y envío de los correos.

Categories
Perú Varios

Ayuda para las víctimas del terremoto en el sur de Perú

Hace un par de días se produjo en Perú un terremoto de 7.5° en la escala de Ritcher, siendo la zona sur (Chincha, Cañete, Pisco e Ica) la parte más afectada.

Si desean ayudar a los damnificados de este lamentable suceso, pueden hacerlo con:

Donación de Sangre

  • Ministerio de Salud: Avenida Salaverry cuadra 8
  • También puede hacerlo en los bancos de sangre de todos los hospitales del Ministerio de Salud (Dos de mayo, Loayza, etc.), Seguro Social de Salud - Essalud (Rebagliati, Almenara, Sabogal, etc.), Fuerzas Armadas, Policía Nacional y Hospital de la Solidaridad.

Donación de víveres y ropa

  • Explanada norte del Estadio Nacional, en Santa Beatriz.
  • Grupo Aéreo Nº 8 de Lima, en el Callao.
  • Las parroquias del Perú recibirán, junto a Caritas del Perú, ropa, enseres y alimentos en todas sus sedes.
  • Municipalidad de San Borja: Avenida Joaquín Madrid, cuadra 2.
  • Circuito del Pentagonito: Avenida San Borja Norte con Boulevard.
  • Centro Comercial Ebony: Avenida San Borja Sur con Parque Sur, cuadra 1.
  • Supermercado Plaza Vea del Centro Comercial San Borja.
  • Para mayor información, se puede llamar al teléfono 612-5555 anexos 358, 312 y 236.
  • La Municipalidad de Jesús María ha instalado tres carpas de campaña en la cuadra nueve de la avenida San Felipe, para junto a los vecinos, empresarios y comerciantes del distrito, ayudar a recolectar víveres, alimentos no perecibles, medicinas y bidones de agua.
  • En Estados Unidos, está canalizando las donaciones y la ayuda. Los teléfonos son: (001) 202-462-1081 / 202-462-1084 y 462-1085. Además, las colectas que se harán en las misas del domingo de la Iglesia St. Matthew, de Washington DC., se destinarán íntegramente al Perú.

Donación de dinero

Las siguientes entidades bancarias peruanas han abierto cuentas para el depósito de donaciones:

  • Banco de Crédito: 193-19999998-0-15 (soles) y 193-19999999-1-16 (dólares).
  • BBVA Banco Continental: 0011-0444-4444444444 (soles), 0011-0444-4444444446 (dólares), 0011-0444-4444444447 (euros).
  • Scotiabank: 0005074657 (soles), 0003022500 (dólares).
  • Interbank: 200-0000001119 (soles), 200-0000001118 (dólares).

En Estados Unidos, pueden hacer sus donativos a las cuentas abiertas por Interbank (Dólares: 200-0000001118 / Soles: 200-0000001119) a través de las siguientes agencias de envío de dinero: Xoom, Bancomercio, Uno, Dolex, BTS, Viamericas, Ria, Transfast, Pronto Envíos, Vigo, Bob Travel, Girosol, MFIC, Intertransfers y Mateo Express. Interbank informa que estas agencias no cobrarán comisión alguna por los envíos. Para mayor información, llamar gratuitamente al 1-866-352-7378.

En México, el BBVA Banco Continental ha abierto la siguiente cuenta bancaria para donaciones: Cuenta APOYAME-3(042769263-3) / Fundación BBVA Bancomer a.c.

En Colombia, el BBVA Banco Continental ha abierto la siguiente cuenta bancaria: Cuenta de ahorros No. 073 213 969 / BBVA Colombia.

En España, el Centro Peruano en Barcelona ha abierto la siguiente cuenta del banco La Caixa (Barcelona): 2100-0479-21-0200048852. Cualquier información, escribir al correo electrónico centroperuanobcn@gmail.com o llamar a los teléfonos 93 265 07 20, 678 66 89 34 y 608 59 3656.

En Canadá, Defensa Civil informa que también se puede depositar dinero en la cuenta del Consulado General del Perú en Toronto, Sismo Perú 2007 Account, # 06702 113 - 4329 del Royal Bank of Canada (RBC).

En todo el mundo: La sede española de Cáritas ha habilitado en su página web un espacio para hacer donativos en línea. Visite este sitio para hacer su aporte y, si lo desea, obtenga antes más información.

Blogs con más información al respecto: bloggingsomnio.net; Desde el tercer piso; Morena; Ocram; Morsa; Arellanos

Categories
.NET Desarrollo de Software Miniposts WordPress

Enlaces varios

Algunos enlaces que posiblemente les interesen:

Categories
Spam Varios

Spam mediante trackbacks

Al parecer mi ausencia en el Blog hizo que los spammers se pongan a enviar más spam de lo que normalmente lo hacían, lo peor de todo es que -- al igual que otras ocasiones -- Akismet deja pasar casi todo.

Pequeña muestra del spam recibido
Pequeña muestra del spam recibido hasta el momento

Instalé WP-Morph con ciertas modificaciones, pero al parecer estos comentarios son enviados como trackbacks, así que el mencionado plugin no es de mucha utilidad en este caso.

Antes de recurrir a soluciones pesadas como Bad Behavior o Spam Karma 2 ¿Alguien conoce un plugin ligero que se encargue de este tipo de spam?