Bienvenido(a) a Alcance Libre 14/09/2025, 04:24
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.
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 |
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 |
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/ |
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 |
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.
Directive | Local Value | Master Value |
---|---|---|
magic_quotes_gpc | On | Off |
magic_quotes_runtime | On | Off |
register_globals | On | Off |
upload_max_filesize | 4M | 4M |
Última Edición: 17/07/2009, 14:12| Hits: 173,209