Directorios restringidos La mayoría de la información que está en la web es de acceso público. Por ello, todos los subdirectorios que cree en su dominio serán por defecto de acceso público, es decir, cualquiera podrá verlos si conoce la dirección web correspondiente. Sin embargo, existe la posibilidad de proteger el acceso a algunos de esos directorios con el fin de que sólo puedan ver su información, mediante un login y una contraseña aquellos usuarios que dispongan de una cuenta de acceso. Cada Servidor Virtual puede restringir el acceso a cuantos subdirectorios desee, tanto en su dominio principal como en cualquiera de los adicionales. Las restricciones a directorios se complementan con el manejo de usuarios de acceso a directorios. Estos usuarios dispondrán de permisos para acceder a los distintos directorios. En lo que a restricción de directorios se refiere en Linux se dispone de dos opciones principales para el uso de usuarios, el fichero .htaccess y mediante Bases de Datos MySQL: .htaccess El sistema de directorios restringidos mediante el fichero .htaccess se trata de un documento de texto en ASCII que puede incluirse en algunos directorios de su sitio web bajo el nombre “.htaccess” y el cual el Servidor Virtual de Apache utiliza para tener algunas reglas sobre le directorios y sus archivos. De esta forma cuando queramos acceder a cualquier fichero que se encuentre en el directorio a restringir el navegador web nos solicitará un usuario y una contraseña. Así mismo, el navegador enviará los datos de petición de acceso al Servidor Virtual de Apache, el cual se encargará de leer y comprobar que el usuario y contraseña corresponden con los datos que se encuentren en el fichero .htaccess. Aparte de mantener usuarios en el fichero .htaccess también existen otras posibilidades como personalizar mensajes de error que el Servidor Apache pueda advertirnos o usar una página inicial diferente. Para ello se utilizan lo que se conoce como directivas de Apache. Entre las principales directivas de Apache las que podemos utilizar en .htaccess se disponen las siguientes: AuthName AuthType ContentDigest DefaultType Indica el tipo de fichero cuando el Servidor Apache no sabe cuál es, útil por ejemplo si en un directorio guardamos imágenes pero sin extensión. Ej: DefaultType image/gif ErrorDocument Directiva que permite mostrar una página personalizada cuando se produce un error: ErrorDocument NumeroError URL Ej: ErrorDocument 404 /errores/pagina_error404.html <IfDefine> <Limit> <LimitExcept> <LimitRequestBody> ejemplo: <LIMIT GET> #usuario #contraseña </LIMIT> El fichero .htaccess puede crearse en cualquier procesador de texto, pero deberá guardarse como un fichero de solo texto. Se deberá utilizar un programa de FTP para subir este fichero al sitio web. Existe la posibilidad también de utilizar CGI’s mediante un formulario para modificar el fichero .htaccess. Los CGI’s son aplicaciones realizadas en lenguajes de programación como Perl o PHP y que permiten la realización de diferentes funciones a través de una página web. Bases de Datos MySQL MySQL es el servidor de bases de datos más popular en los sistemas Linux. Se trata de software libre y gratuito, muy robusto capaz de manejar sin problemas tablas con bastantes registros en sitios web de muchas visitas. Las bases de datos de MySQL no son archivos que se puedan subir a su sitio web como los de MS Access, sino que residen en un servidor de datos separado. Por ello deben utilizarse programas cliente que permitan la conexión al servidor de datos con el fin de crear las tablas, subir datos, editar registros, etc. Aunque MySQL está en un servidor Linux, usted puede gestionar sus bases de datos desde ordenadores con cualquier sistema operativo utilizando las aplicaciones adecuadas. Existen varios métodos para gestionar una base de datos MySQL: PhpMyAdmin PhpMyAdmin es una aplicación realizada en PHP que le permite administrar sus bases de datos MySQL a través de Internet utilizando páginas web. PhpMyAdmin tiene entre otras las siguientes funcionalidades: Permite crear tablas En cada tabla puede crear y modificar campos, especificando su tipo de datos, valores por defecto, etc Se pueden lanzar sentencias SQL contra la base de datos Se pueden obtener volcados de la base de datos tanto de estructura como de datos Se pueden importar datos al servidor: enviar archivos con los datos de una tabla ODBC para MySQL Si el ordenador de trabajo utiliza un sistema operativo Windows, se puede gestionarlas tablas de las bases de datos MySQL utilizando cualquier programa Windows que utilice ODBC, por ejemplo MS Access. Para ello se debe instalar los controladores OBDC para MySQL disponibles en el sitio web www.mysql.com. Tras la instalación se podrá crear un DSN que apunte a la base de datos remota en el servidor y utilizar Access para acceder a las tablas. El menú "Abrir base de datos" de Access tiene la posibilidad de abrir una base de datos definida por ODBC. Para utilizar el sistema de directorios restringidos mediante Bases de Datos MySQL permite más opciones que el tradicional .htaccess como el almacenamiento de datos completos de usuarios que dispongan de login y contraseña o la creación de grupos para restringir diversos accesos de directorios dependiendo del grupo al que pertenezca cada usuario. Además se agiliza el proceso de inserción y modificación de los datos. El manejo de usuarios, grupos y directorios restringidos mediante Bases de Datos MySQL se realiza con un panel de control en el cual se podrá dar de alta usuarios, modificar datos o enviarle un e-mail a un usuario automáticamente con la contraseña. Se disponen dos formas para la restricción de directorios mediante MySQL: A través del Servidor Virtual de Apache. Mediante páginas realizadas en lenguaje PHP. Para la restricción mediante el Servidor Virtual de Apache tan sólo se configurarán una serie de directorios web a los que no se podrá acceder si no es a través de los datos que se encuentren en una tabla de una Base de Datos específica. Mediante páginas realizadas en lenguaje PHP se deberá de crear un Panel de Control mucho más avanzado en el cual se podrá administrar mejor la restricción de accesos a determinados grupos de usuarios de una Base de Datos. Un ejemplo de este tipo de restricciones lo podemos encontrar en la aplicación PHPNuke, un portal Web completo basado en programación PHP y que utiliza Base de Datos en MySQL.