Un serio problema en WordPress

Si teneis una bitácora gestionada con WordPress 1.2.1 o 1.3a5 mas os vale leer esta entrada, porque existe un problema muy serio en estas versiones que puede causar que WordPress cambie la URI de la bitácora del valor que tiene almacenada en la base de datos a otro valor según HTTP_HOST . REQUEST_URI de forma automática, con los consiguientes problemas que esto origina.

Según Michael Heilemann, de Binary Bonsai, para solucionar el problema basta editar el archivo wp-login.php y eliminar las siguientes líneas:

// If someone has moved WordPress let's try to detect it
if ( dirname('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) != get_settings('siteurl') )
update_option('siteurl', dirname('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) );

7 pensamientos en “Un serio problema en WordPress”

  1. Muchas gracias por el aviso. Una aclaración, tengo en pruebas una 1.3a4 y también tenía la vulnerabilidad, tal vez esté en todas las 1.3 a partir del día que sacaron la 1.2.1

  2. hombre, logicamente no las he probado todas a ver en cuales estaban esas líneas y cuales no 😛 pero si parece lógico que si están en la 1.2.1 y en la nightly de hace una semana, esté en todas las versiones entre estas

    gracias por el dato

  3. ¿Que me vas a contar Zootropo a mi?, si te cuento que hace un par de meses ese mismo problema hizo que mi instalacion de WP petara al pasar de localhost al sitio donde tengo ahora SigT…

    Solucion (para cuando el daño ya esta hecho):

    Modificar manualmente en la tabla wp_options el option_value del option_id 1 y 105 (siteurl y home respectivamente).

    Para los que no conozcan mysql voy a dar el ejemplo cambiando el siteurl y el home (option_id 1 y 105) de una url ficticia a localhost:

    mysql>
    SELECT option_id, option_value FROM wp_options WHERE option_id = 1 || option_id = 105;
    +———–+—————————-+
    | option_id | option_value |
    +———–+—————————-+
    | 1 | http://url_ficticia |
    | 105 | http://url_ficticia |
    +———–+—————————-+
    2 rows in set (0.00 sec)

    mysql>
    UPDATE wp_options SET option_value=”http://localhost/” WHERE option_id = 1;
    UPDATE wp_options SET option_value=”http://localhost/” WHERE option_id = 105;

    Y ya esta, volvemos al primer comando y sale:

    +———–+——————-+
    | option_id | option_value |
    +———–+——————-+
    | 1 | http://localhost/ |
    | 105 | http://localhost/ |
    +———–+——————-+
    2 rows in set (0.00 sec)

  4. Pingback: soteke's weblog » Problema en el blog

  5. Pingback: Weblog de Zamorate » Mantenimiento

  6. Pingback: SigT

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.