Cookies

Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas.

No suelo darle importancia a las novedades de Internet Explorer, pero hoy me pareció interesante algunos consejos que dan desde el blog de éste navegador para reducir el tráfico HTTP que se produce entre un servidor y un cliente.

Antes de continuar, estas son las nuevas limitaciones que impone Internet Explorer para el manejo de Cookies:

  • Se incrementó de 20 a 50 el número de cookies que se puede crear por dominio.
  • document.cookie retornará una cadena vacía si el tamaño de las cookies es mayor a 4096 bytes.
  • El navegador ignorará las cabeceras Set-Cookie si éstas exceden de 5118 bytes.

Volviendo al tema anterior, éstos son los consejos que sugieren para reducir el tráfico HTTP:

  • Reducir el tamaño de las cookies: Recomiendan utilizar nombres y si es posible, valores más cortos. Ejm. en lugar de una cookie denominada username, usar sólo u.
  • Servir el contenido estático desde otro (sub)dominio: Una vez que el servidor envía las cookies usando la cabecera Set-Cookie, un navegador convencional enviará de vuelta estos valores en cada petición que se haga al servidor. Como los valores de las cookies son irrelevantes para los archivos estáticos, entonces se genera tráfico innecesario.
  • Usar el atributo path sólo cuando sea necesario: El atributo path permite manejar cookies para rutas específicas de un dominio, por ejemplo si se envían cookies para la ruta /aplicacion, entonces en el servidor se podrá acceder a estos valores sólo desde esa ruta *. Usar este atributo en general va a depender de los requerimientos de la aplicación, pero si quieres ahorrar unos cuantos bytes entonces haz que la ruta sea para todo el dominio.

Las resultados de estos consejos seguramente van a ser más evidentes en sitios con mucho tráfico que en sitios como éste, donde el número de lectores se puede contar con los dedos de la mano. 😀

*: En realidad se puede acceder a todos los datos de la petición y por consiguiente a todas las cookies, pero de manera convencional algunos lenguajes abstraen esta funcionalidad para dar acceso sólo a las cookies definidas para una ruta.

Novedades de WordPress 2.3

Acaba de liberarse la primera beta de la versión 2.3 (incluye el parche para la vulnerabilidad previamente comentada).

Complementando a lo que Andrés ya publicó sobre las novedades que WordPress 2.3 incluirá, aquí les presento otras:

  • Notificación de la existencia de versiones nuevas, por el momento éstas notificaciones aparecen en el pie de página de la parte de administración. En mi opinión éstas deberían ser más visibles y llamativas -- algo parecido a lo que hace el plugin Akismet cuando recién se instala.

    Las consultas de nuevas versiones se hacen a http://api.wordpress.org/core/version-check/1.0/?version=VERSION&php=VERSION_PHP&locale=

  • Redirecciones automáticas en los siguientes casos:

    • Si la dirección URL del blog usa www o no (se obtiene del valor definido en las opciones).
    • Para el caso de blogs -- como éste -- que usen estructuras de permalinks que terminan en /, antes se aceptaba por ejemplo http://www.buayacorp.com/archivos/cusco y http://www.buayacorp.com/archivos/cusco/, ahora se redirigen correctamente a la versión con /.
    • Si sólo se especifica parte del nombre de la entrada, http://www.buayacorp.com/archivos/cus será redireccionado a http://www.buayacorp.com/archivos/cusco/.
  • Uso de Google Blog Search para mostrar los enlaces entrantes.
  • Posible auditoría de seguridad antes de la liberación de una versión estable.

Sin duda, el punto que más me llama la atención es la auditoría de seguridad al código de WordPress, que le vendría muy bien luego de los problemas reportados a lo largo del 2007, aunque me parece que éstos problemas no se reducirán mucho si no se mejora la forma de acceder a los datos.

WordPress: Lista de plugins no recomendados – Parte 2

Como seguramente saben, Weblog Tools Collection organizó un concurso de plugins para WordPress y hoy, casi un mes después que terminó el concurso, dan a conocer los resultados:

  1. El ganador del gran premio, el primero, de esta competición de Plugins para WordPress es para Anirudh Sanjeev por su plugin OneClick. OneClick es un plugin para WordPress y una extensión para Firefox que permite la instalación rápida y directa de plugins y temas en tu blog, con solo un clic. Ha recibido el premio más cuantioso, con un servidor dedicado básico para 6 meses (valorado en más de 1000 dólares) y un iPod Nano de 8 Gb (valorado en 600 dólares) o el dinero equivalente.
  2. El ganador del segundo premio es para Barry por su plugin MyDashboard. MyDashboard permite la rápida personalización del escritorio de WordPress.
  3. El ganador del tercer premio es para Keith Dsouza por su plugin WordPress Automatic Upgrade el cual permite actualizar de forma automática la instalación de tu WordPress desde la interfaz de administración.
  4. El ganador del premio de consolación ha sido Ozh por su plugin Who Sees Ads. WhoSeesAds es un maravillo e útil módulo que permite a los usuarios de WordPress determinar que anuncios se deben ver en cada momento en su blog.

Fuente

Luego de hacer unas pruebas en una instalación local de WordPress y ver someramente el código de estos plugins, veo que ninguno de ellos toma en cuenta el tema de seguridad, así que haré mi propia lista de plugins tomando como parámetro de ordenación el grado de peligrosidad (de mayor a menor):

  1. WordPress Automatic Upgrade: Permite a cualquier usuario no autenticado:
    • Generar y descargar los archivos de WordPress (incluye wp-config.php).
    • Generar y descargar una copia de seguridad de la base de datos donde está instalado el plugin.
    • Activar/Desactivar todos los plugins.
    • Actualizar la versión de WordPress.
  2. OneClick: Al ser vulnerable a CSRF, permite descargar plugins -- o código malicioso -- desde cualquier URL.
  3. Who Sees Ads: Es vulnerable a CSRF y XSS.
  4. MyDashboard: Es vulnerable a CSRF y XSS.

Si tienen esos plugins instalados (en especial los dos primeros), les sugiero que los desactiven cuanto antes, porque gracias a toda la publicidad que están recibiendo, seguramente pronto van a ser blanco de ataques.

Viendo estos ejemplos, no sé cómo algunos bloggers se quejan de la cantidad de fallos del código principal de WordPress y no dicen nada al respecto de los plugins, cuando muchas veces éstos últimos provocan problemas de seguridad aún más graves.

Venta de exploits

Hace unas horas recibí un correo de alguien que quiere comprar unos exploits para versiones nuevas WordPress y aunque no comparta la idea de lucrar con este tipo de cosas, sólo por curiosidad le respondí preguntándole cuánto pagaría por el exploit para la vulnerabilidad que estuve comentando estos días.

La venta de exploits es un tema bastante polémico, por un lado gente que quiere que su tiempo invertido en encontrar una vulnerabilidad sea recompensado de algún modo (ya sea por la empresa afectada o por alguien más) y por otro lado, aquellos que consideran que hacer esto es éticamente incorrecto.

To chime in on the debate some more. Vulnerability researchers such as myself spend a lot of time finding these holes and then reporting them via full disclosure. Out of experience I know not to contact the site affected directly as it will always be more hassle then it is worth.

And herein lies the problem. I don't have the financial resources to search full time for vulnerabilities and therefore need to work. But... if i was to say get some type of monetary compensation for my time then i could possible quit my job and spend those hours searching for vulnerabilities and as a result, help to make a great number of popular websites more safer.

Criminals on the other hand, do have the time and money to search for the vulnerabilities because when the find them, they expoilt them in order to obtain profit. So as you can see, until people start getting paid for reporting vulnerabilities, the number of actual holes found and reported will continue to be outweighed by the number of vulnerabilities found, exploited and not reported.

Hence, until we are rewarded for reporting vulnerabilities, users of sites such as myspace, google, ebay, paypal, yahoo, msn, facebook and pretty much any other highly frequented site should consider themselves and any data they choose to place on this sites free game and in the public arena.

Como mencioné al principio y a pesar de que en realidad necesito dinero para continuar con mis estudios, lucrar con la venta de exploits a terceros no me parece correcto, porque al fin y al cabo los que usan estas aplicaciones, no tienen la culpa de los errores que generalmente cometemos como desarrolladores.

Spam en páginas de universidades

Luego del último problema que tuve con el spam en este blog, instalé -- como solución temporal -- Spam Karma; gracias a los reportes que brinda este plugin, veo que algunos spammers usan sitios crackeados de algunas universidades. En dos de tres sitios afectados que miré usan WordPress, obviamente esto no indica que la culpa sea de este CMS, sino que al parecer hacen uso de temas descargados desde sitios no confiables -- es sólo una suposición, podría ser cualquier cosa.

La siguiente lista muestra algunos dominios .edu que fueron baneados en algún momento por el mencionado plugin:

code:
mysql> select value from sk2_blacklist where value like '%.edu%' limit 10;
+----------------+
| value          |
+----------------+
| washington.edu |
| psu.edu        |
| usc.edu        |
| uci.edu        |
| tufts.edu      |
| simmons.edu    |
| jalc.edu       |
| upr.edu        |
| cmccd.edu      |
| rice.edu       |
+----------------+

Tomando como ejemplo uno de los sitios de la Universidad de Puerto Rico, se puede ver que alrededor de 160 páginas spam fueron indexadas por Google, Yahoo muestra 4 páginas de ese tipo y sorprendentemente Live Search devuelve sólo páginas sin spam -- no estoy seguro si el operador site hace lo mismo en los 3 buscadores.