Hoy en AyudaWordPress.com | ![]() |
WordPress 3.5: peligro de inyección SQL si ves “PHP Warning: Missing argument 2 for wpdb::prepare()” Posted: 13 Dec 2012 12:47 PM PST Nos avisa el bueno de Andrew Nacin de un grave error en sitios que han actualizado a WordPress 3.5 que, aunque no afecta a todos, es un potencial peligro de inyecciones SQL, así que no hay que tomarlo con ligereza.
El asunto es que hay usuarios que, debido a plugins o temas, están recibiendo un aviso bastante feo, este:
Pues bien, como se ha apuntado en los foros de soporte, esto es debido a que algo o alguien (un plugin) está usando incorrectamente la función No es un error de WordPress, más bien al revés, pues el equipo de desarrollo ha preferido que estos errores se muestren a que tengamos un agujero de seguridad por un plugin y no nos enteremos, así que en realidad está hecho por nuestro bien, mal que le pese a algún desarrollador que ahora tendrá que revisar su código. Un ejemplo de esto sería esta línea de código en un plugin: $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->comments SET comment_parent=$parentID WHERE comment_ID=$commentID;" ) ); El problema es que no se ha usado la declaración de El ejemplo anterior es un código peligroso, ya que conlleva la posibilidad de que abra la puerta a un exploit de inyección SQL, o sea, el primer paso para hackear tu sitio web. El código anterior se puede solucionar de este modo: $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->comments SET comment_parent=%d WHERE comment_ID=%d;", $parentID, $commentID ) ); Como ambos se supone que son integradores, se han reemplazado las variables en la declaración con el O sea, que si quieres arreglar momentáneamente el error tienes que encontrar la línea de código con el problema y corregirla. Con eso eliminas el exploit y el mensaje de aviso tan feo. Por supuesto, lo anterior es un apaño temporal que solo te sirve a ti, no a toda la comunidad ni a WordPress en su conjunto, lo que hay que hacer en realidad si ves este error es lo siguiente:
Lo mismo también puede pasar con un tema WordPress así que si tras hacer lo anterior sigue el error cambia de tema para comprobarlo. La peor solución es ocultar los errores, aunque puedes hacerlo simplemente añadiendo estas líneas al fichero ini_set( 'display_errors', false ); error_reporting( 0 ); Un ejemplo de este error, lamentablemente, es el plugin Akismet, pues aunque acaban de actualizalo ahora mismo y soluciona el fallo deberían haber estado más pendientes, por la estrecha relación de Automattic con el desarrollo de WordPress. |
Entorno de desarrollo para WordPress Posted: 12 Dec 2012 12:00 PM PST Una vez que ya tienes tu WordPress funcionando y aumentando en número de visitas, posiblemente necesitarás nuevos cambios para mejorar el aspecto, para añadirle nuevas funcionalidades, etc. En este post se explicará cómo crear un entorno de desarrollo en tu propia máquina local para poder jugar con él lo que quieras sin ningún riesgo para tu sitio WordPress. Una vez que hayas cambiado el tema, añadas plugins o personalices algunos aspectos del sitio y estés seguros de los cambios, tan sólo es necesario sincronizar los ficheros y ¡listo! Tendrás de forma rápida y segura tu nuevo WordPress funcionando.
Para crear un entorno de desarrollo local de WordPress necesitarás la famosa arquitectura AMP (Apache. MySQL y PHP). La primera letra denota el sistema operativo por lo que se suele usar WAMP para Windows, MAMP para OS X y LAMP para sistemas Linux. Estos requisitos pueden ser instalados de forma independiente en tu sistema operativo de forma manual.
Una forma mucho más sencilla, limpia y rápida de tener todo funcionando es usar un instalador donde todo esté configurado y listo para usar. Estos instaladores tienen la ventaja de que son autocontenidos, todos los ficheros se encuentran en un directorio y no realizan cambios en tu sistema. Puedes tener varios sistemas en tu máquina independientes para probar distintas configuraciones. Para ello existen varias alternativas, entre las más populares están:
En este se usará el instalador de BitNami WordPress que ya viene configurado para tenerlo funcionando en 5 minutos. Tan sólo tienes que descargar el instalador para tu sistema operativo y seguir unos sencillos pasos de instalación: ¡Ya tienes WordPress funcionando en tu propia máquina! Puedes acceder a http://127.0.0.1/wordpress desde Windows o http://127.0.0.1:8080/wordpress desde OS X o Linux para acceder al panel de control con el usuario y contraseña que especificaste durante la instalación. En el directorio de instalación encontrarás una aplicación para iniciar y parar los servidores llamada "manager". Asegúrate de que ambos servidores estén funcionando antes de acceder a tu instalación de WordPress. A continuación se mostrará el proceso para sincronizar tu WordPress en producción con el instalado en tu máquina local. Para ello necesitarás realizar primero una copia de la base de datos. Si tienes acceso a phpMyAdmin en tu hosting puedes crear una copia de seguridad o "dump" de la base de datos a través de la acción "Exportar". Si tienes acceso a un terminal en tu hosting puedes crear la copia de seguridad "backup.sql" con el siguiente comando:
Descarga este fichero a tu ordenador y cópialo direactamente en "C:". Después podrás importarlo a través de phpMyAdmin a la base de datos de tu instalación local. También puedes realizar esta acción a través de la línea de comandos:
Si todo ha funcionado correctamente ya tienes la base de datos sincronizada. Para la sincronización de ficheros el proceso es simple, debes sobreescribir todos los ficheros de tu WordPress remoto con los de tu instalación local a excepción de wp-config.php. Para ello puedes descargarte los ficheros con un cliente FTP (por ejemplo, FileZilla, WinSCP, Cyberduck o cualquier otro). Los ficheros de WordPress de tu máquina se encuentran por defecto en el directorio:
El último paso es configurar el dominio o URL. Por defecto BitNami WordPress está configurado para acceder a http://tu_dominio/wordpress. Esto es así para permitir instalar más aplicaciones como Joomla!, Drupal, Moodle u otros encima de tu instalación de WordPress. Puedes descargar estos módulos en http://bitnami.org/stacks. Para cambiar la URL y acceder a tu WordPress desde la URL principal (sin /wordpress), debes modificar el archivo de configuración para que quede de la siguiente forma (en rojo las líneas que cambian) "directorio_de_instalación/apps/wordpress/conf/wordpress.conf"
También modificar el archivo wp-config.php para eliminar el sufijo /wordpress en estas dos líneas:
Ya está todo listo para acceder a tu instalación local a través de la siguiente URL http://127.0.0.1 en Windows o http://127.0.0.1:8080 en OS X o Linux. Puedes realizar los cambios que quieras en tu instalación local y cuando lo tengas todo listo puedes realizar el proceso inverso para subir los cambios a tu WordPress en producción:
Espero que esta guía sirva para poder probar y desarrollar funcionalidades en tu WordPress de forma más sencilla, rápida y segura. Puedes encontrar más información sobre el instalador de BitNami WordPress en su Wiki. |
You are subscribed to email updates from Ayuda WordPress To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
No hay comentarios:
Publicar un comentario