El tema de la seguridad de un espacio web es realmente delicado y complejo, pero en estos momentos sólo nos podemos centrar en lo que podemos hacer, en primera instancia, para mantener nuestro espacio protegido en la red, y considerando que si tenemos nuestro sitio albergado en un servidor remoto, lo más probable es que no podamos modificar las configuraciones del servidor http ni de PHP.
Joomla! ya es en sí un sistema muy seguro, pero es preciso actuar con cierta diligencia si no queremos tener sorpresas desagradables. Esta colección de primeras recomendaciones debe servir de inicio de un proceso complejo, pero necesario.
.htaccess es un archivo de texto oculto que contiene una serie de directivas para el servidor Apache. Cuando un cliente solicita un archivo al servidor, éste busca desde el directorio raíz hasta el subdirectorio que contiene el archivo solicitado el archivo .htaccess y tiene en cuenta estas reglas antes de proceder con la petición, es decir, se aplican las normas especificadas al directorio en el que se encuentre .htaccess y los directorios por debajo de él.
Ejemplos de usos para .htaccess pueden ser restringir el acceso a determinados archivos, impedir el listado de los archivos de un directorio, redireccionar, personalizar las páginas de error o impedir el acceso a determinadas IP's o rangos de IP. Por ejemplo, aunque son muchas más las posibilidades que permite .htaccess para proteger nuestro sistema:
Cuando se intenta acceder a un directorio, en ausencia de un archivo de índice, Apache muestra por defecto el contenido del directorio. Si queremos impedir al usuario ver el contenido de un directorio, bastaría con crear un archivo de índice, por ejemplo index.html, pero existe una solución más elegante mediante la directiva "Options". Basta crear un archivo .htaccess que contenga la línea:
Options -Indexes
También podríamos utilizar la directiva DirectoryIndex, que especifica qué archivos actúan como índice por defecto, y qué archivo mostrar en el caso de que éstos no se encuentren. Por ejemplo la línea:
DirectoryIndex index.php index.html index.htm /prohibido.php
indicaría al servidor que debe buscar los archivos index.php, index.html o index.htm, en ese orden, y en el caso de no encontrar ninguno de ellos, cargar el archivo prohibido.php.
Podrías querer deshabilitar totalmente el acceso a una carpeta. En este caso sólo los archivos principales accederán a ellos mediante el sistema de archivos, pero no se podrán acceder vía web. Simplemente, crea un archivo .htaccess en esa carpeta que contenga:
#deny all access
deny from all
Si se quiere permitir el acceso desde una IP específica,
#deny all access deny from all allow from 10.0.0.1
o para un rango específico de IP's (forzado mediante la máscara de red).
allow from 192.168.0.0/24
También se puede bloquear el acceso a un archivo específico,
<files privado.html>
Order allow,deny
Deny from all
</files>
1. Los contenidos de este apartado se corresponden con las recomendaciones de seguridad que ofrece http://www.joomlaos.net, propiedad de Gonzalo Reynoso, y se introducen en este texto con autorización expresa del autor.
2. Utilizar HTTP Authentication supone manipular código en varios archivos, y excede del propósito de este texto. Si quieres tener una buena referencia para dominar el control de seguridad que se puede realizar con ".htaccess", en "Joomlaos", puedes encontrar una buena referencia para completar esta información (http://www.Joomla!os.net/seguridad-en-Joomla!-utilizando-.htaccess-en-servidores-linux-apache.php).