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:
[email protected] Creative Commons Reconocimiento-NoCom Reconocimiento-NoComercial-CompartirI ercial-CompartirIgual gual 2.1
© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar pblicamente la obra y !acer obras deri"adas ba#o las condiciones si$uientes% a& Debe reconocer y citar al autor ori$inal. b& 'o puede utili(ar esta obra para )ines comerciales (incluyeno su publicación! a trav"s e cual#uier meio! por entiaes con $ines e lucro% . c& *i altera o trans)orma esta obra o $enera una obra deri"ada, s+lo puede distribuir la obra $enerada ba#o una licencia idntica a sta. l reutili(ar o distribuir la obra, tiene ue de#ar bien claro los trminos de la licencia de esta obra. l$una de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derec!os de autor. /os derec!os deri"ados de usos le$timos u otras limitaciones no se "en a)ectados por lo anterior. /icencia completa en castellano castellano.. /a in)ormaci+n contenida en este documento y los deri"ados de ste se proporcionan tal cual son y los autores no asumirn responsabilidad al$una si el usuario o lector !ace mal uso de stos.
Introucción. pac!e 2.3 tiene me#ores medidas de se$uridad ue las "ersiones anteriores, debido a ue su con)i$uraci+n predeterminada "iene de tal modo ue des!abilita muc!as cosas ue podrn considerarse de cierto ries$o. 4arte de esa se$uridad incluye des!abilitar los &&I 5&er"er &ide Includes o 6nclusiones del /ado del *er"idor& y el uso de los arc!i"os .htaccess. stos ltimos sir"en para modi)icar o a$re$ar )unciones a directorios. Bsicamente solo se necesita a$re$ar las si$uientes lneas a cualuier de)inici+n del directorio ue se desee utili(ar% Options Includes AllowOverride All
'roceimientos. Autenticación e irectorios. /a autenticaci+n para un directorio, contra un arc!i"o ue incluye cla"es de acceso, se reali(a a tra"s de la si$uiente sinta3is en cualuier arc!i"o .htaccess. AuthName "Acceso solo usuarios autorizados" AuthType Basic require valid-user AuthUserFile AuthUserFile /cualquier/ruta/hacia/a /cualquier/ruta/hacia/archivo/de/cl rchivo/de/claves aves
)emplo.
*e procede a crear un directorio ue ser "isto desde cualuier na"e$ador como http://12.!.!.1/pri"ado/ . 8enere el arc!i"o *etc*http*con$.*e)emplo-autenticar.con$ con con el si$uiente contenido%
Alias /privado /var/www/privado !irectory "/var/www/privado " Options Includes AllowOverride All Order allow#deny Allow $rom all /!irectory
8enere el directorio *var*+++*privao* reali(ando lo si$uiente% m%dir -p /var/www/privado
,enere el arc!i"o *var*+++*privao*.htaccess reali(ando lo si$uiente% touch /var/www/privado/&htaccess
ite el arc!i"o *var*+++*privao*.htaccess y a$re$ue el si$uiente contenido% AuthName "'olo usuarios autorizados" AuthType Basic require valid-user AuthUserFile /var/www/claves
,enere el arc!i"o de cla"es de acceso como *var*+++*claves, utili(ando el si$uiente procedimiento% touch /var/www/claves
on el )in de establecer la se$uridad necesaria, cambie los atributos de lectura y escritura solo para el usuario apache% chmod ()) /var/www/claves chown apache*apache /var/www/claves
$re$ue al$unos usuarios virtuales al arc!i"o de cla"es, *var*+++*claves, utili(ando el si$uiente procedimiento con el mandato htpass+% htpasswd /var/www/claves $ulano htpasswd /var/www/claves men+ano
:einicie el ser"icio http% service httpd restart
cceda con cualuier na"e$ador de red !acia http://12.!.!.1/pri"ado/ y compruebe ue )unciona el acceso con autenticaci+n en dic!o subdirectorio utili(ando cualuiera de los dos usuarios "irtuales ue $ener+ con el mandato htpass+, es decir )ulano o men$ano. lyn, http://127.0.0.1/privado/
Asignación e irectivas para ''. *uelen darse los casos donde una aplicaci+n, escrita en '', reuiere al$unas directi"as de '' en particular. n muc!os casos se lle$an a necesitar "ariables ue pueden comprometer la se$uridad de otras aplicaciones !ospedadas en el ser"idor. 4ara tal )in es ue se puede e"itar modi)icar el arc!i"o *etc*php.ini utili(ando el parmetro php$lag en un arc!i"o .htaccess. /a si$uiente sinta3is es la
si$uiente% php$la+ directivaphp valor
)emplo
*e proceder a asi$nar las directi"as registerglobals, magic#uotesruntime, magic#uotesgpc y uploamax$ilesi/e al directorio en la ruta *var*+++*aplicacion, mismo ue ser "isuali(ado desde pac!e como http://12.!.!.1/aplicacion/ . l "alor para registerglobals ser 0n, el "alor para magic#uotesruntime ser 0n, el "alor para magic#uotesgpc ser 0n y el "alor para uploamax$ilesi/e ser . 8enere el arc!i"o *etc*http*con$.*e)emplo-irectivas-php.con$ con el si$uiente contenido% Alias /aplicacion /var/www/aplicacion !irectory "/var/www/aplicacion" Options Includes AllowOverride All Order allow#deny Allow $rom all /!irectory
,enere el arc!i"o *var*+++*aplicacion*.htaccess reali(ando lo si$uiente% touch /var/www/aplicacion/&htaccess
ite el arc!i"o *var*+++*aplicacion*.htaccess y a$re$ue el si$uiente contenido% php$la+ re+ister+lo.als On php$la+ ma+icquotes+pc On php$la+ ma+icquotesruntime On phpvalue uploadma,$ilesize 0
,enere el arc!i"o *var*+++*aplicacion*in$o.php, una )unci+n ue muestra toda la in)ormaci+n acerca de '' en el ser"idor, a )in de corroborar los "alores de las directi"as de '' en relaci+n al directorio, con el si$uiente contenido% 1phpin$o231
:einicie el ser"icio http% service httpd restart
cceda con cualuier na"e$ador de red !acia http://12.!.!.1/aplicacion/in#o.php y corrobore ue los "alores para las "ariables de '' para el directorio in"olucrado realmente !an sido asi$nadas. n la sub-secci+n '' Core de la secci+n Con$iguration, !ay tres columnas% 3irective, el cual corresponde a la directi"as '', 4ocal 5alue, el cual corresponde a los "alores de las directi"as de '' para el directorio actual y aster 5alue, ue corresponde a los "alores de las directi"as $enerales como estn de)inidas en el arc!i"o *etc*php.ini. 3irective
4ocal 5alue
aster 5alue
magic#uotesgpc
;n
;))
magic#uotesruntime
;n
;))
registerglobals
;n
;))
uploamax$ilesi/e
<=
<=