Contenido

Wordpress 2.3.2, actualización urgente

30 Dic

+ 39

La gente de Wordpress, nos recomienda que nos actualizemos a la versión 2.3.2 urgentemente para evitarnos problemas de seguridad, descubiertos por Alex Concha, en los que la privacidad de nuestros borradores se veía comprometida. Al parecer, la versión actual es sensible a que personas sin loguear puedan ver estos posts desde nuestro blog.

El problema radicaba en una comprobación de usuario en el fichero wp-includes/query.php, en el que daba por supuesto que eras administrador si encontraba wp-admin/ en la URL del navegador, siendo sensible a situaciones como estas:

?x=wp-admin/&paged=1

Si por algún motivo no puedes actualizar, pero quieres solventar el problema, bastaría con realizar los siguiente cambios:

1. Editamos el fichero  wp-include/query.php y cambiamos la función is_admin(); por la siguiente.

function is_admin () {
        if ( defined('WP_ADMIN') )
                return WP_ADMIN;
        return false;
}

2. Despues en la página wp-admin/admin.php insertamos en la primera línea el siguiente código detrás del tag de PHP <?php

define('WP_ADMIN',TRUE);

Ojo, siempre que puedas, recomiendo que te actualizes todo y evites tocar código. Y si estás tocando el código, asegurate de tener copias de seguridad de los ficheros que modificas.

Como extra en esta nueva versión, se ha añadido la posibilidad de que puedas personalizar el error de conexión a base de datos fácilmente.

Personalizar la página de error de nuestro Wordpress 2.3.2

En los casos en los que Wordpress tiene problemas de conexión con la base de datos, podemos evitar la página fea de “DATABASE ERROR” haciendo uso del nuevo sistema de Wordpress mediante una página externa.

wordpress_database_error.png

Únicamente, tendremos que crear una página llamada db-error.php y alojarla dentro del directorio wp-content/. Veamoslo por pasos :D

  1. Creamos una página PHP llamada db-error.php
  2. La úbicamos dentro de la carpeta wp-content/ de nuestro Wordpress
  3. Cruzamos los dedos para no verla nueva :D

Idea para página de error personalizada

Puesto que el usuario no tiene culpa de que está ocurriendo un error, me parece interesante hacerle invisible este problema usando la caché generada por algún plugin de los que conocemos para aliviar la carga de nuestros servidores. Uso 1BlogCacher y solo lo he probado con este plugin, aunque indagando un poco encontraremos el patrón para encontrar nuestro fichero.

Se trata de emular el index de nuestro blog y avisarnos por correo de que existe algún problema. Este script se me ha ocurrido ahora mismo y seguro que te acordarás de mi si lo usas y recibes 500 mails diciendo que está la base de datos caida, habrá que perfeccionarlo.

//wp-content/db-error.php
<?php
if (eregi("dberror.php", $_SERVER["REQUEST_URI"])) die("No accedas directamente");
mail("TU_EMAIL", "Error de Base de datos", "Tienes que revisarlo");
if (!defined("ABSPATH")) define('ABSPATH', '../');
die(file_get_contents(ABSPATH."wp-cache/index.php/d41d8cd98f00b204e9800998ecf8427e.html"));
?>

Un par de apuntes:

Donde pone TU_EMAIL, debes indicar el mail al que quieres que le llegue el aviso. Debes tener disponible la función file_get_contents(), en caso de no tenerla, puedes usar curl() u otras alternativas. El hash (d41d8cd98f00b204e9800998ecf8427e), lo usa 1BlogCacher, para el index, por lo tanto no debería dar error en ningún blog, pero por si acaso, comprueba que existan los ficheros en la ruta indicada arriba.

Actualización de Wordpress a la versión nueva

Seguimos los mismos pasos que en versiones anteriores.

  • Descargamos la versión nueva
  • Desactivamos todos los plugins
  • Accedemos al FTP
  • Renombramos la carpeta wp-content a _wp-content.
  • Subimos todos los ficheros de dentro del ZIP, excepto la carpeta wp-content.
  • Una vez subidos todos, probamos a acceder al sitio y probablemente veamos un error.
  • Renombramos de nuevo la carpeta _wp-content a wp-content
  • Ya podemos acceder al blog sin errores.
  • Nos dirigimos al panel de administración y seguimos los pasos de la actualización que ellos mismos te sugieren.
  • Listo, ya tenemos nuestro blog en Wordpress 2.3.2.
  • Activamos los plugins que deseemos. 

seguí los consejos que das pero tengo un problema subir los archivos y cambie el nombre de wp-content de bueno entre al blog pero no me salen los pasos para actualizar estoy haciendo algo mal?

Es el unico “bug” que tiene? digo si no tengo borradores me tengo que preocupar? :-P

Hay alguien más que haya intentado la actualización.
Ahora va genial con la 2.3.1 y no quiero estropear tanto trabajo.

a mi me va bien con la version 2.2.2
¿ como podria arreglar ese bug sin tener q pasar a la rama 2.3.X ??
¿que archivos PHP deberia editar ?
a ver si alguien nos da una mano a los que usamos WP en versiones anteriores =D

Hola. Pienso seguir tus consejos para actualizar la version. Pero soy nuevo en esto y me asusta.
Al grano… Tengo wp 2.3.1 en español… tu método ¿afecta al idioma?.
Salu2

@Laslo: Prueba con esto:

Si por algún motivo no puedes actualizar, pero quieres solventar el problema, bastaría con realizar los siguiente cambios:

1. Editamos el fichero wp-include/query.php y cambiamos la función is_admin(); por la siguiente.


function is_admin () {
        if ( defined('WP_ADMIN') )
                return WP_ADMIN;
        return false;
}

2. Despues en la página wp-admin/admin.php insertamos en la primera línea el siguiente código detrás del tag de PHP <?php

define('WP_ADMIN',TRUE);

Echalé un vistazo a los cambios en el trac.
Ojo, siempre que puedas, recomiendo que te actualizes todo y evites tocar código. Y si estás tocando el código, asegurate de tener copias de seguridad de los ficheros que modificas.

Actualizado y de momento ningun problema

un saludo

gracias por la respuesta. igualmente me sugirieron que replique estos 2 cambios:

http://trac.wordpress.org/changeset/6442
http://trac.wordpress.org/changeset/6510

ojo con el segundo trac, que no lo tomaste en cuenta en tu comment.

ya he hecho estos cambios en WP 2.2.2 y todo se ve ok. se me hizo mas sencillo que actualizar a una nueva version de WP… aunque se que eventualmente lo tendre que hacer =D

Yo acabo de actualizar, hasta ahora ningún problema :)

Yo lo actualice normalmente y ahora no puedo pasar a mi blog u.u

Bueno, visto que ya ha habido bastante gente que le ha ido bien habrá que actualizar.

Lo haremos en el 2008. Ya os contaré.

Un saludo y feliz 2008 a todos.

Actualizado. Mil gracias.

Tengo ganas de ke salga la 2.4

Parece que K2 ya no me gestiona los asides, ¿es posible??

Me son muy útiles este tipo de posts, gracias Andrés ;)

He actualizado desde la 2.1 y solo puedo acceder a la parte de administración, mientras que el blog no es visible. No muestra ningún mensaje de error y al entrar en administración por primera vez me actualizó correctamente la b.d. Alguna sugerencia? Gracias.

Soy el de antes… solucionado!! Sólo he tenido que seleccionar de nuevo el tema en ‘Presentación’ y a funcionar… :) Eah, por si le pasa a alguien más! Saludos y Feliz Año a todos. Antonio.

Una pregunt medio tonta pero nadie lo dice en concreto y no lo se. Yo tengo que actualizar varias versiones de la 2.1 en adelante… puedo directamente saltearme hasta la 2.3.2 o tengo que ir version por version… porque supuestamente la ultima trae todo lo de la anterior tambien.. muchas gracias.

@Matt: Si que puedes actualizar directamente, Wordpress, trae un sistema de actualización de versiones anteriores, modificando lo necesario para que no necesites preocuparte por la versión desde la que vengas.

Geniales trucos. Gracias Andrés.

J.

Hola, yo he actualizado desde la versión 2.6.1 a la 2.6.3 y no puedo acceder a wp-admin.
Me sale un mensaje diciendo: Please log in again
He deshecho todos los cambios y vuelto a la versión aterior u funciona y lo he vuelto a instalar todo y me sale lo mismo. Se les ocurre cual puee ser el problema?
Mil gracias. Me encanta este blog, todas las mañanas lo leo y me sirve mucho como referencia en mis trabajos. Felicidades aNieto2k

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.


Cerrar
Enviar por Correo