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 😀

  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 😀

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. 

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.