Archivos en el mes de Septiembre del 2007

Ruby on Rails y los comerciales de RailsEnvy.com

Últimamente he tenido bastante descuidado mi blog y algunos de mis asiduos lectores ya hasta se quejan por correo electrónico, entre algunas de mis mas recurrentes excusas han sido: por las vagaciones, por el nuevo ciclo escolar, por que me da mucha hueva y por ultimo por que no soy un “verdadero blogger” (esta ultima es de mis excusas favoritas Cool); pero bueno no es que no quiera simplemente cuando quiero sentarme a escribir no me salen ideas y a diferencia de los bloggers normales a mi no me gusta hablar de cualquier tema, sino solo de temas que son interesantes para mi y/o considero importantes por que suelo dominar el tema o necesito de algún modo hacer publica una opinión, pero en fin esta vez trataremos de ver si podemos regresar a lo normal.

Estos vídeos/comerciales de a continuación (que ya ni me acuerdo de donde me tome la nota por primer vez, así que esto ya es antiguo según el tiempo de vida de la web 2.0) como siempre últimamente casi toda la prensa (y mala-prensa) técnica suele parodiar/imitar a los famosos comerciales de “Get A Mac” de Apple, en este caso son un comerciales hechos por un grupo de dos programadores (Gregg Pollack y Jason Seifer) que se dedican a tiempo completo a desarrollar bajo Ruby On Rails, estos mismos decidieron crear estos comerciales para crear un tipo de prensa técnica comparando de manera “graciosa” (y hasta cierto punto muy realista) de lo que es Ruby On Rails versus otros lenguajes y frameworks populares dando algunos puntos fuertes del desarrollo web bajo “Rails”.
Antes de entrar de lleno a que veas los vídeos tengo que refutar/opinar (como buen geek) que no todo es realidad (deja vu?) y es realmente hasta cierto punto mas costoso mantener y “escalar” un desarrollo web bajo Ruby On Rails que tomarse un poco mas de tiempo y hacerlo bajo otros lenguajes como PHP o inclusive Java (quizás exagere un poquito en este ultimo), como bien dijo Ricardo Galli (en una nota sobre Twitter y la “escalibilidad”):

[...]RoR me hubiese ahorrado trabajo de programación y hubiésemos tenido más prensa “técnica”, pero eso hubiese significado más problemas de mantenimiento de una infraestructura más compleja, dinero para salarios para administradores de sistemas, etc. etc. etc.[...]

Uno de los puntos que lo hacen fuerte es la arquitectura usada, la arquitectura de Modelo, Vista, Controlador hace que el desarrollo web bajo Ruby On Rails sea muy fácil, yo diría exhaustivamente fácil, hacer cambios a ciertos puntos de las aplicaciones se harían en segundos comparado con PHP el tiempo de “codificación” es sumamente menor o mejor dicho casi nulo, otros lenguajes de desarrollo web como Java hacen uso de esta arquitecura pero la han implementado de una manera que lo hacen ver muy complicado haciendo ver claro que Java aunque use el mismo paradigma que Ruby On Rails, Ruby On Rails lo hace ver sumamente fácil comparado con Java. Sin embargo no todo es miel sobre hojuelas, el tener una arquitecura diferente implica para los “nuevos desarrolladores” o “viejos tercos enamorados de las arquitecturas convencionales” un esfuerzo por entender esta nuevo enfoque algo que no siempre todos los programadores están dispuestos a tomar, aunque la arquitectura Modelo, Vista, Controlador es muy simple sigue siendo un poco complicado de entender y hallar soluciones 100% eficientes a los problemas habituales del mismo.

Fuera de los costos de mantenimiento de proyectos y del arquitectura usada en Ruby On Rails existe la “fanaticada” o los fanáticos por Ruby On Rails, la mayoría de estos provienen de lo “cool” que se sienten los programadores en Ruby, el cual es un gran lenguaje de scripting pero sinceramente este lenguaje es mas lento que Python y aun mas lento que PHP, su servidor como buen geek se lo aprendió y realmente le intereso ver ese lado “cool” de programar (pueden de hecho bajar un ebook sobre programación/scripting en Ruby muy bueno -solo en ingles- en la sección de descargas en este blog), sinceramente si programar en Ruby es “re-cool” pero fuera de las ventajas del lenguaje no veo otras mejoras, en general cada vez que alguien me pregunta les digo lo mismo “es como una fusión de PERL y Python multiplicando por 2 o mas veces la lentitud de ejecución de Python”; así que en general la mayoría de los fanáticos de Ruby On Rails son fanáticos de Ruby, así que por ese lado se entiende la extensión del mismo así como la activa campaña de los mismos por promocionarlo, sin nada mas que agregar al final de la nota (después de los vídeos) les dejo unos links muy buenos sobre el tema ya que es mejor formarse una opinión propia que a tomar la de alguien y repetirla como lorito así que los invito ustedes mismos a exactamente eso, formarse su opinión personal y tal vez dejarnos un pequeño comentario aquí mismo o un sus blogs sobre este tema.

De los siguientes vídeos me parecieron excelentes los comerciales #2, #5 y #6, pero bueno seguro a mas de uno les resultaran graciosos los demás Tongue out:

Links de Interés:
http://es.wikipedia.org/wiki/Ruby_on_Rails [español]
http://www.maestrosdelweb.com/editorial/rubyonrails/ [español]
http://www.refreshinglyblue.com/2007/8/20/php-vs-ruby-practical-language-differences [ingles]
http://www.cmswire.com/cms/industry-news/php-vs-java-vs-ruby-000887.php [ingles]
http://www.onlamp.com/pub/a/onlamp/2005/10/13/what_is_rails.html [ingles]

PD: No creen que “el que hace de Ruby On Rails” (Gregg Pollack) parece o actua gay en los ads?
PD2: Que pensarian del lenguaje si fuera cierto lo anterior? Ruby On Rails lenguaje para gays? Cool (Sin animo ofender a toda la comunidad gay/homosexual claro esta)

WordPress 2.3

Logo + Slogan de WordPress 2.3

Después de algunas horas de retraso por fin ya se ha puesto al publico la versión 2.3 de la ahora tan famosa (y odiada por algunos) CMS exclusivamente enfocada para “Blogging”, como saben WordPress es la plataforma de publicación que g30rg3 Blog usa, así que para mi también es grato ver todas las mejoras que se la han hecho.
Como siempre les aviso que un par de horas estare actualizando hacia esta versión así que tal vez les toque el mensaje de update o de error así que de antemano les pido me disculpen mientras se termina de actualizar.

Actualización
Como el amigo alex dejo en un comentario (jejejejeje pero no alexander concha si no alex de alexseo.com Tongue out) para todos los que no saben ingles o les disgusta tener el dashboard en ingles… alex ya ha hecho una traducción completa del dashboard, mas información aquí.

(In)Seguridad en WordPress: Verdades, Mentiras y Un poco mas…

Últimamente parece que hablar de la (in)seguridad en WordPress es el tema mas tratado por diferentes bloggers desde los mas apegados a WordPress (mejor conocidos como WP-Fans) hasta aquellos que solo quieren iniciar una guerra de flameos; sin embargo desgraciadamente son muy pocos los comentarios que “realmente” tienen una validez o sustento lo que dicen, son muy pocos los que hablan/discuten sobre este asunto conociendo cual es la realidad del mismo, me he visto en la necesidad de leer cada tipo de comentarios de gente que de verdad parece que solo esta haciendo Spam hacia algún CMS (de su preferencia) mas que aportar algo o discutir algo valido sobre el mismo tema.
Continua leyendo »

WordPress 2.2.3 y el PoC para el XSS

Ya ha salido a luz publica la ultima versión(sub) que va tener la rama 2.2.x, este es un lanzamiento de seguridad que incluye muchas soluciones para diferentes bugs de seguridad, entre ellos están el bug de XSS Reflectivo que les hable aquí mismo, el blind sql injection del cual hablaba alexander concha en su blog (y que causo un poco de pánico entre varios usuarios de WordPress), uno de escalada de privilegios y por el ultimo el que facilitaba phising al login de WordPress.
En fin muchos son los bugs de seguridad por eso recomiendo ampliamente que todos los usuarios de la rama 2.2.x (y los que TODAVÍA siguen con la 2.1.x) se actualicen a esta ultima y como dicen mas vale prevenir que lamentar…

Con respecto a la forma como se explotaba el bug de XSS Reflectivo que les quede a deber en la entrada anterior, el escenario es algo simple pero algo especial en estos días, se requería primero contar las URL-amigables (Permalinks predefinidos) y que tu tema cuente con la capacidad de tratar los errores 404 (404.php) y claro contar con alguna versión de la rama WordPress 2.2.x.
El chiste era que durante un error 404 el titulo como antes tampoco ahí se filtraban los “caracteres malos” así que haciendo un poco de trucos antiguos solo bastaba hacer que se generara un error 404 (poniendo claro urls a partes que no existan) e inyectar como antiguamente lo hacíamos

Un Ejemplo/PoC seria así:
http://[URL]/test-foo?year=</title><script>alert(String.fromCharCode(88,83,83))</script>

XSS en WordPress 2.2.2

Hace unos momentos Ryan Boren ha enviado hacia el SVN de WordPress unos parches para al parecer resolver un problema de seguridad, al darle una simple mirada a los cambios puedo ver que se trata de la misma vulnerabilidad que descubrí hace ya algún tiempo pero vista desde otro punto de ataque el cual no se tenia filtrado, aunque no es necesario cundir el pánico ya que la vulnerabilidad es un simple XSS Reflectivo/No-Persistente y existen otras un poco menos graves que ya han sido reparadas en el SVN, esta es de las de mas alto riesgo que existe o se tiene conocimiento hasta el momento (aunque como siempre digo un XSS es de poco riesgo pero si tiene alto impacto), así que recomiendo ampliamente la aplicación del siguiente parche solo como medida preventiva:

Archivo de Diferencias (en diff)
Archivos PreParcheados

También me he fijado que para esta vulnerabilidad sea correctamente explotada requiere un escenario un poco especial (con respecto a como debe estar programado el tema que se use de WordPress) pero aun con ese escenario especial he logrado encontrar muchos blogs famosos que se puede explotar la vulnerabilidad entre ellos están el blog donde “Alexander Concha” pone sus trabajos mejor conocido el lugar como “Buayacorp“, pero bueno no hablare sobre la vulnerabilidad y la manera de como explotarla, no al menos hasta que halla pasado cierto tiempo o salga la versión 2.2.3 (o la 2.3), aunque estoy seguro que las personas dedicadas a esto con solo mirar el archivo de diferencias y ver sobre la antigua vulnerabilidad que descubrí, fácilmente hallaran la forma de explotarla…