SUSCRÍBETE Facebook Icon Twitter Icon Google Plus Icon Feed Icon Feedburner Icon Linked In Icon Digg 1 Icon Delicious Icon

Joomla es un proyecto de código abierto

Joomla! es un premiado sistema de Gestión de Contenidos (CMS), que permite crear sitios Web y poderosas aplicaciones online. Muchos aspectos, incluyendo su fácil uso y extensibilidad han convertido a Joomla! en el software para Web más popular.

Domingo, 07 Diciembre 2008 10:20

Mover archivos confidenciales fuera del acceso público

Escrito por 
Valora este artículo
(0 votos)

Un desafío en Joomla! es el de asegurar que ciertos archivos que contengan información confidencial o sean ejecutables queden protegidos contra el acceso directo desde internet.

Hay varias maneras de proteger ese tipo de archivos, pero, la mayoría, no lo hace en optimas condiciones, sobre todo cuando el "factor humano" entra en juego. Teniendo que repasar el contenido de cada uno de los archivos en el espacio público, siendo estos protegidos contra el acceso directo "por código", el "factor sorpresa" en condiciones "standard" se pierde con gran facilidad; ya que, causalmente, usamos los mismos nombres de archivo o carpeta, los cuales, se instalan en las mismas rutas relativas al directorio raíz.


Apache.org mismo, recomienda encarecidamente que se evite alojar, dentro del mismo espacio público, los archivos susceptibles de ser explotados por alguna vulnerabilidad, así como aquellos que contengan datos confidenciales.

Joomla! es cada vez más robusto en ese sentido y se actualiza, previene e informa a sus usuarios para actuar contra las nuevas detecciónes de fallas con presteza; pero, quedan gran cantidad de extensiones pobremente programadas por terceros que podrían poner en jaque a todo nuestro servidor; ya que, si en un mismo espacio web, alojamos y permitimos el acceso tanto a archivos públicos como confidenciales.. un solo archivo vulnerable, expone al servidor entero. Los archivos que quedan fuera del espacio público, aunque sean vulnerables, no son explotables por "ataques via URL".. precisamente, por estar ubicados en una Zona Privada, fuera del alcance público "via URL".

Sugerencias

En este ejemplo, vamos a proteger el archivo configuration.php el cual es, posiblemente, el archivo más confidencial de toda la web. Para ello:

1. Mueve el archivo configuration.php a una ruta de acceso privado fuera de tu espacio público y renómbralo con el nombre que prefieras. En este ejemplo, lo vamos a renombrar a joomla.conf

2. Crea un nuevo archivo configuration.php que contenga solo el siguiente código:

Código: Seleccionar todo

 No incluyas líneas o espacios en blanco antes del inicio de la etiqueta "<?php" o después del final de la etiqueta, "?>". Tales líneas o espacios en blanco pueden provocarte el famoso error "headers already sent". Por ejemplo:

Código: Seleccionar todo

Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxx/public_html/configuration.php:2) in /home/xxxxx/public_html/index.php on line 250

3. Asegúrate que el nuevo archivo de configuración no es escribible por nadie, de este modo, no podrá ser sobre-escrito por el com_config cuando se apliquen cambios en la configuración global de nuestra web.

4. Si necesitas cambiar la configuración global, hazlo manualmente desde el archivo que hemos reubicado y renombrado a joomla.conf.

Adaptarnos a las circunstancias

En el supuesto de que nuestra ruta absoluta al espacio web con acceso público fuera el siguiente:

Código: Seleccionar todo

/var/www/usuario/public_html

dirname( __FILE__ ) se encargaría de recoger ese dato.

Si, dentro de public_html, creamos la carpeta private_html

Código: Seleccionar todo

require( dirname( __FILE__ ) . '/private_html/joomla.conf' );

Indicaría una ruta válida apuntando a un archivo existente dentro de la "Zona Privada":

Código: Seleccionar todo

/var/www/usuario/public_html/private_html/joomla.conf

Si se sugiere de este modo, no quiere decir que no se pueda llevar a cabo de otras maneras. Esta, es la simple y a fin de cuentas lo que estamos haciendo es crear una "zona privada dentro de la pública"

Otro modo de proceder, por ejemplo, seria indicándolo de este modo:

Código: Seleccionar todo

require( '/var/www/usuario/private_html/joomla.conf');

Con lo cual, dentro de la "zona pública" no estamos creando un espacio privado, sino que, apatir de "/var/www/usuario" tenemos una carpeta "public_html" para el acceso público y otra llamada "private_html" para el acceso privado.

La carpeta privada, tanto si está en el espacio público como fuera de él, normalmente y generalizando, podría dejarse con permisos chmod 700, y, los archivos alojados en su interior con chmod 400; ademas, "via .htaccess" o, desde el servidor, por configuración de etiquetas "Directory".. se podría restringir el acceso, denegándolo a todo el mundo, menos, por ejemplo, a la IP del administrador.

Todo esto, como mínimo, requiere de trabajar con "propietario y grupo apropiados"; es decir, en otras circunstancias, los permisos chmod de archivo/carpeta, por funcionar como tocan; pero, con un propietario y grupo equivocado, no nos permitiría operar como deseamos.

Nota: Adicionalmente, con este método, se tendría que impedir, por configuración del servidor, el "mostrar errores"; ya que, junto al error, se podría mostrar,"dejando al descubierto", la ubicación de nuestros "archivos privados" (lo cual es un dato que no nos interesa facilitar).

Leer 937 veces Modificado por última vez en Lunes, 26 Diciembre 2011 01:18
blog comments powered by Disqus

Últimos artículos del blog

  • Joomla! 1.6 - Guía para Principiantes
    Escrito por
    Ya llegamos a marzo, comenzamos de a poco a volver a la normalidad y con eso nuevamente comenzamos a publicar en nuestro blog y…
    Escrito el Martes, 01 Marzo 2011 20:08 Leer 6240 veces
  • Portal Monito Joomla!
    Escrito por
    En nuestra categoría "Mundo Joomla", queremos destacar la web de "Monito Joomla".Monitojoomla, es un sitio web dirigido a desarrolladores web y diseñadores con conocimientos…
    Escrito el Domingo, 30 Enero 2011 11:21 Leer 1759 veces
  • Joomla! 1.6 - Insertando videos de Youtube
    Escrito por
    Dentro de las consultas referidas a Joomla! 1.6 una de las más frecuentes es la forma en la que se deben insertar los videos…
    Escrito el Sábado, 29 Enero 2011 20:40 Leer 7994 veces