Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Cómo habilitar los archivos .htaccess en Apache 2.x

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Apache® 2.x tiene mejores medidas de seguridad que las versiones anteriores, debido a que su configuración predeterminada viene de tal modo que deshabilita muchas cosas que podrán considerarse de cierto riesgo. Parte de esa seguridad incluye deshabilitar los SSI (Server Side Includes o Inclusiones del Lado del Servidor) y el uso de los archivos .htaccess. Estos últimos sirven para modificar o agregar funciones a directorios.

Básicamente solo se necesita agregar las siguientes líneas a cualquier definición del directorio que se desee utilizar:

Options Includes
AllowOverride All

Procedimientos.

Autenticación de directorios.

La autenticación para un directorio, contra un archivo que incluye claves de acceso, se realiza a través de la siguiente sintaxis en cualquier archivo .htaccess.

AuthName "Acceso solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /cualquier/ruta/hacia/archivo/de/claves

Ejemplo.

Se procede a crear un directorio que será visto desde cualquier navegador como http://127.0.0.1/privado/.

Genere el archivo /etc/httpd/conf.d/ejemplo-autenticar.conf con el siguiente contenido:

Alias /privado /var/www/privado
<Directory "/var/www/privado">
	Options Includes
	AllowOverride All
	Order allow,deny
	Allow from all
</Directory>

Genere el directorio /var/www/privado/ realizando lo siguiente:

mkdir -p /var/www/privado

Genere el archivo /var/www/privado/.htaccess realizando lo siguiente:

touch /var/www/privado/.htaccess

Edite el archivo /var/www/privado/.htaccess y agregue el siguiente contenido:

AuthName "Solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /var/www/claves

Genere el archivo de claves de acceso como /var/www/claves, utilizando el siguiente procedimiento:

touch /var/www/claves

Con el fin de establecer la seguridad necesaria, cambie los atributos de lectura y escritura solo para el usuario apache:

chmod 600 /var/www/claves
chown apache:apache /var/www/claves

Agregue algunos usuarios virtuales al archivo de claves, /var/www/claves, utilizando el siguiente procedimiento con el mandato htpasswd:

htpasswd /var/www/claves fulano
htpasswd /var/www/claves mengano

Reinicie el servicio httpd:

service httpd restart

Acceda con cualquier navegador de red hacia http://127.0.0.1/privado/ y compruebe que funciona el acceso con autenticación en dicho subdirectorio utilizando cualquiera de los dos usuarios virtuales que generó con el mandato htpasswd, es decir fulano o mengano.

lynx http://127.0.0.1/privado/

Asignación de directivas para PHP.

Suelen darse los casos donde una aplicación, escrita en PHP, requiere algunas directivas de PHP en particular. En muchos casos se llegan a necesitar variables que pueden comprometer la seguridad de otras aplicaciones hospedadas en el servidor. Para tal fin es que se puede evitar modificar el archivo /etc/php.ini utilizando el parámetro php_flag en un archivo .htaccess. La siguiente sintaxis es la siguiente:

php_flag directiva_php valor

Ejemplo

Se procederá a asignar las directivas register_globals, magic_quotes_runtime, magic_quotes_gpc y upload_max_filesize al directorio en la ruta /var/www/aplicacion, mismo que será visualizado desde Apache como http://127.0.0.1/aplicacion/. El valor para register_globals será On, el valor para magic_quotes_runtime será On, el valor para magic_quotes_gpc será On y el valor para upload_max_filesize será 4M.

Genere el archivo /etc/httpd/conf.d/ejemplo-directivas-php.conf con el siguiente contenido:

Alias /aplicacion /var/www/aplicacion
<Directory "/var/www/aplicacion">
	Options Includes
	AllowOverride All
	Order allow,deny
	Allow from all
</Directory>

Genere el archivo /var/www/aplicacion/.htaccess realizando lo siguiente:

touch /var/www/aplicacion/.htaccess

Edite el archivo /var/www/aplicacion/.htaccess y agregue el siguiente contenido:

php_flag register_globals On
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime On
php_value upload_max_filesize 4M

Genere el archivo /var/www/aplicacion/info.php, una función que muestra toda la información acerca de PHP en el servidor, a fin de corroborar los valores de las directivas de PHP en relación al directorio, con el siguiente contenido:

<?phpinfo()?>

Reinicie el servicio httpd:

service httpd restart

Acceda con cualquier navegador de red hacia http://127.0.0.1/aplicacion/info.php y corrobore que los valores para las variables de PHP para el directorio involucrado realmente han sido asignadas. En la sub-sección PHP Core de la sección Configuration, hay tres columnas: Directive, el cual corresponde a la directivas PHP, Local Value, el cual corresponde a los valores de las directivas de PHP para el directorio actual y Master Value, que corresponde a los valores de las directivas generales como están definidas en el archivo /etc/php.ini.

DirectiveLocal ValueMaster Value
magic_quotes_gpc On Off
magic_quotes_runtime On Off
register_globals On Off
upload_max_filesize 4M 4M

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Última Edición: 17/07/2009, 14:12|Hits: 136,213 Ver la versión para imprimir