Re: CMS - Sistemas de gestión de contenidos

Marco González Luengo noquierouser en gmail.com
Sab Mayo 17 23:05:42 CLT 2008


El 17/05/08, Baronti <baronti en gmail.com> escribió:
> No estoy seguro que lo que plantea nuestro amigo es en realidad un problema.
>  No soy expèrto en php, pero si algo me enseña la programación, es que
>  hay MUCHOS caminos para llegar a Roma.
>  No creo que Joomla este MAS expuesto a la inseguridad que otros
>  proyectos de CMS.
>  Saludos
>
>
>  El día 17 de mayo de 2008 20:12, Marco González Luengo
>  <noquierouser en gmail.com> escribió:
>  > ¿Y de cazuela les reportaste eso a los de Joomla?
>  >
>  > Una cosa es ver las pifias de algo, gritar y correr; y otra cosa es
>  > ver la pifia, avisar y proponer solución. :)
>  >
>  > El 17/05/08, Rodrigo Fuentealba <the.code.keeper en gmail.com> escribió:
>  >> -----BEGIN PGP SIGNED MESSAGE-----
>  >> Hash: SHA1
>  >>
>  >> Baronti escribió:
>  >>> El día 17 de mayo de 2008 16:57, Rodrigo Fuentealba
>  >>> <the.code.keeper en gmail.com> escribió:
>  >>
>  >>>> Dios mata a un gatito blanco cada vez que usas Joomla. El codigo es
>  >>>> horrible.
>  >>>
>  >>> A ver, señor de los códigos
>  >>> podria UD. decir, a qué código se refiere?
>  >>
>  >>> Joomla Versión 1.0.15, ?
>  >>
>  >> Yep.
>  >>
>  >>> Joomla Versión 1.5.x ?
>  >>
>  >> También.
>  >>
>  >>> ¿Y cuál es el fundamento de la apreciación?
>  >>
>  >> De muestra un boton:
>  >>
>  >> Joomla 1.5 fue escrito para PHP 5; sin embargo en el fichero
>  >> libraries/joomla/database/database.php me encuentro con una clase que
>  >> declara sus atributos como var $atributo.
>  >>
>  >> ¿Que clase de programador deja a merced del lenguaje el tratamiento de
>  >> los atributos de sus clases? Cualquier estudiante de informatica chileno
>  >> sabe que las clases importantes, tales como las que se usan en
>  >> conexiones a bases de datos deben usar funciones para poblar sus atributos.
>  >>
>  >> <?php
>  >>
>  >> class imbecil
>  >> {
>  >>    var $user;
>  >>    var $pass;
>  >>    var $host;
>  >>    var $base;
>  >> }
>  >>
>  >> ?>
>  >>
>  >> es especialmente estupida; cualquier persona puede extender la clase y
>  >> usarla en un modulo para sus propios usos. quien la controla?
>  >>
>  >> <?php
>  >>
>  >>   private $user;
>  >>   private $pass;
>  >>   private $host;
>  >>   private $base;
>  >>
>  >>   function setUser($user) { validacion de $user; asignacion }
>  >>   function setPass($pass) { validacion de $pass; asignacion }
>  >>   function setHost($host) { validacion de $host; asignacion }
>  >>   function setBase($base) { validacion de $base; asignacion }
>  >>
>  >> ?>
>  >>
>  >> Esta clase es mucho menos vulnerable a estupideces del tipo "uy, puse un
>  >> modulo que me extendio la clase y me hackearon".
>  >>
>  >> Los tipos de Joomla no tienen idea de PHP.
>  >>
>  >> - --
>  >> Rodrigo Fuentealba
>  >> Concepción, Región del Bío-Bío, Chile
>  >> -----BEGIN PGP SIGNATURE-----
>  >> Version: GnuPG v1.4.9 (GNU/Linux)
>  >>
>  >> iEYEARECAAYFAkgvW7kACgkQoqmdUrqLMt2kUgCgqxGCuLRMLhS3DeEHA29qUcpz
>  >> g7UAn1iH4EgPFg5sVBwI2DdRAV1Ocd70
>  >> =BGos
>  >> -----END PGP SIGNATURE-----
>  >>
>  >
>  >
>
>

Puede que hayan muchos caminos para llegar a Roma, pero en materia de
seguridad, una de las cosas importantes que debes llevar para ese
camino es dar seguridad. En este caso, las variables planteadas son
fácilmente manipulables, y hasta visibles, por lo que se puede manejar
la base de datos fácilmente. Es como dejar la caja fuerte cerrada, y
pegarle en la puerta un post-it con la combinación. :O

Ahora, el ejemplo planteado por nuestro amigo tiene la particularidad
de estar presente en una versión final de un software, lo que si bien
es un "pequeño bug", es un bug que puede joder miles de cosas...
incluyendo datos privados y la sensación de suciedad que te deja el
saber que has sido hackeado. Me imagino que por lo menos lanzaron un
parche, porque si ese hoyo sigue ahí... pues "ouch".

Así, con esto se descarta completamente que esto sea un "pequeño bug".



Más información sobre la lista de distribución Linux