Opciones de Seguridad con .htaccess

2 01 2008

htaccess es para muchas otras cosas, además de la aplicación de Redireccionamientos y personalización de las páginas de error. Otra de las funciones principales de la herramienta es controlar aspectos internos dentro de las carpetas del servidor como la seguridad, el control de acceso a usuarios, etc. En este nuevo artículo de la serie veremos más a detalle estas opciones:

Control de Acceso a Carpetas: algunos ejemplos comunes de este tipo de opción con htaccess es el control de acceso a los directorios mediante contraseñas, bloqueos de motores de SPAM, restricciones por IP, etc.

# Permitir el acceso al motor de Google o a alguien con contraseña
AuthName «Under Development»
AuthUserFile /home/askapache.com/.htpasswd
AuthType basic
Require valid-user
Order Deny,Allow
Deny from all
Allow from 1.1.1.1 w3.org googlebot.com google.com google-analytics.com
Satisfy Any

# Redireccionar todo el tráfico a otro sitio, excepto para una IP
ErrorDocument 403 http://www.somewhere.com
Order deny,allow
Deny from all
Allow from 1.1.1.1

Algunas otras aplicaciones dentro del control del acceso son: forzar la descarga para determinados tipos de archivos y la asignación de scripts para la ejecución de determinadas tareas.

# Archivos .AVI, .MPG, .MOV y .PDF se descargan directamente
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pdf

# Procesar archivos .GIF con un Script CGI
Action image/gif /cgi-bin/filter.cgi

# Procesar peticiones para tipos específicos de petición
Script PUT /cgi-bin/upload.cgi
Script HEAD /cgi-bin/head-robot.cgi

Opciones de Seguridad Avanzadas: este tipo de tecnicas también son importantes y brindan un mayor nivel de seguridad. Entre estas tenemos el uso del protocolo HTTPS y SSL y el del archivo .htpasswd:

# Arreglar el problema de la doble autenticación y garantizando que la
# autenticación via .htpasswd pueda ser ingresada solamente con HTTPS
SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq «somewhere.com»
ErrorDocument 403 https://somewhere.com

# Redireccionar todo lo servido por el puerto 80 a HTTPS
RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Las siguientes son opcines de seguridad via htpasswd:

# Proteger multiples tipos de archivos
<FilesMatch «^(exec|env|doit|phpinfo|w)\.*$»>
    AuthName «htaccess password prompt»
    AuthUserFile /.htpasswd
    AuthType basic
    Require valid-user
</FilesMatch>

# Restringir acceso por IP
Allow/Deny from 10.1.0.0/255.255.0.0

El acceso puede hacerse parcialmente (es decir sin una IP especifica sino permitiendo a todos los que esten dentro de determinado rango).

Este tipo de ejemplos son muy prácticos y sencillos de aprender. Igualmente, seguiré investigando nuevas opciones y funciones para htaccess y publicando periódicamente actualizaciones a los ejemplos. De igual manera es necesario tener siempre a la mano una versión de: Apache HTACCESS CheatSheet para futuras consultas.

Artículos Relacionados


Acciones

Information

6 responses

14 08 2008
informacion

quisiera saber en q programa se editan los .htaccess

14 08 2008
Juan Manuel Lemus

No hay programa específico. Puedes hacerlo desde un editor de texto cualquiera

1 12 2008
E-Construir

Excelente articulo, tan completo como simplificado. Me parece muy bueno tomar en cuenta las carateristicas HTTPS dfel seder apache pues de eso generalmente se habla solo en articulos muy complejos, dificiles de entender para los novatos. Muchas gracias.

16 09 2009
anuncios

Tengo una carpeta a la que no permito entrar a los robot porque genera muchas url duplicadas y otros problemas, pero quiero que si entre el robot de google adsense. Es decir. en la carpeta http://www.misitio.com/anuncios/ tengo puesto en robots.txt que no entren los robor pero necesito que si entre el robot de adsense.
En adsense leo que se puede autenticar el sitio web pero no explican bien como se puede hacer. Lo que si observo que puedo elegir la opción .htaccess

¿Como puedo hacer ese archivo en .htacess.?
En el ejemplo que pones arriba no se donde tengo que poner la url que quiero permitir al robot y que tengo que poner en AuthName. En resumen que esto es todo neuvo para mi y necesitaría tener hecho el archivo entero.

11 10 2009
bs

MMM

20 11 2010
Consejos de seguridad para bloggers y empresas que usan Wordpress

[…] Te recomendamos leer la documentación de apache para que puedas configurar tu archivo .htaccess correctamente y aqui un post más especifico. […]

Deja un comentario