ARCHIVO HTACCESS VALIDO PARA CUALQUIER TIPO DE WEB

Fecha actualización: 2016-1-25. Fecha publicación: . Categoría: Web, Seguridad. Autor:

Con una configuración optima del archivo .htaccess de tu web en el alojamiento o servidor apache, conseguiras mas seguridad en tu web a posibles ataque ciberneticos, ademas de un tiempo de carga de tu web mas rapido.

Instrucciones que no pueden faltar en un archivo .htaccess en cualquier tipo de web

1 AddDefaultCharset utf-8: Con esta linea consigues asociar todos los archivos de tu web con una codificación de caracteres en este caso el utf-8

2 ErrorDocument 404 /404.html: Cuando se produce un error de "pagina no encontrado 404" la pagina que se visualiza es la 404.html. Se puede definir una linea diferente para cada tipo de error (500, 501, 400...)

Otro ejemplo puede ser ErrorDocument 401 /401.html o ErrorDocument 500 /500.html

3 DirectoryIndex index.html: Cuando creamos una carpeta por defecto hay un archivo al cual los navegadores leen automaticamente, el cual suele ser el index.html o index.htm. Con esta instrucción le indicamos el archivo por defecto que deseamos visualizar

Otra variante de esta linea es DirectoryIndex index.html index.php index.cgi. Si por alguna razón en alguna carpeta no tenemos creado el index.html intentaria visualizar el index.cgi y luego el index.php

Instrucciones relacionadas con la seguridad de la web

4 Header always set X-Frame-Options "SAMEORIGIN": Se elimina la posibilidad de que se pueda insertar la web en un framde o en un object.

Existe una tecnica de ataque web llamado el clickjacking, consiste en que nuestra pagina es insertado en un frame el cual se utiliza para generar visitas indeseadas, ademas de ser una tecnica NO PERMITIDA por GOOGLE

5 Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload": En el caso de que tengas paginas con https:// esta linea te sirve para evitar ataques de hackers

El navegador Chrome mantiene una lista blanca de sitios webs que utilizan https:// protegidos al cual a traves de esta pagina (https://hstspreload.appspot.com) puedes incluirte. Esta lista tambien es utilizado por el navegador Firefox

6 Header set X-XSS-Protection "1; mode=block": Se utiliza para evitar ataques de tipo cross-site scripting.

El cross-site scripting es una tecnica de hacking en la que se inyecta codido javascript o sql en una web, es relativamente facil provocar este tipo de ataque.

7 Header set X-Content-Type-Options nosniff: Mejora la seguridad de tu sitio (y sus usuarios) contra algunos tipos de drive-by-downloads.

El drive-by-downloads evita que tu pagina sea utilizada para descargas no deseadas en tu web o contra la instalación a traves de tu web de active x no deseados

8 Header set Content-Security-Policy "default-src 'self'": En una pagina web se suele hacer referencias a sitios externos, como las redes sociales, con esta linea nos aseguramos que cuando un usuario hace click en un hipervinculo externo realmete se le redirije a ese sitio.

Intrucciones relacionadas con la disminución del tiempo de carga de una web

9 mod_gzip_on Yes: El Gzip es una aplicación el cual esta instalada en la mayoria de los servidores apache. El software comprime la información de las diferentes extensiones de archivo (.html, .js, .jpeg...) antes de enviarlas al navegador del usuario que visita la pagina.

Estos son las extensiones mas utilizadas 10 mod_gzip_item_include file\.(html?|css|js|phpl)$

11 FileETag none: Desactiva las etiquetas. El FileTag es una etiqueta que se asigna a cada archivo para compararlo con la version que existe en la cache del navegador del usuario, en el caso de que sean iguales se evita el proceso de descarga de ese archivo.

El motivo de añadirle none es debido a que su funcionamiento no es del todo correcto en los navegadores con lo que suele descargar el archivo aunque la del cache sea igual.

12 RewriteEngine On 13 RewriteCond %{HTTP_HOST} !^www. 14 RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]: Con estas 3 lineas nos aseguramos de que todas las peticiones de nuestra web sean con www o sin www

15 ExpiresActive On: Esta linea va seguida de otras como esta 16 ExpiresByType image/jpg "access 1 year"o como esta 17 ExpiresByType text/html "access 2 day", en el que indicamos cuanto tiempo se guardan esos archivos en el cache del navegador del usuario.

Hay que añadir tantas lineas ExpiresByType como extensiones de archivos en la web (html, js, php, asp, gif, jpg, png...)

Otras curiosidades que te pueden interesar del .htaccess

Redirigir páginas individuales: Redirect 301 /pagina_antigua.html http://www.ejemplo.com/nueva_pagina.html

Redirigir todo un sitio web: Redirect 301 / http://nuevo_sitio.com/

Impide cualquier acceso a un sitio web: Deny from All

Impide cualquier acceso salvo aquellos autorizados: 1 Order deny, allow y 2 Deny from All 3 Allow from xxx.xxx.xxx.xxx

Permite todos los accesos salvo aquellos desautorizados: 1 Order deny, allow 2 Allow from All 3 Deny from xxx.xxx.xxx.xxx 4 Deny from xxx.xxx.xxx.yyy

Impide que se pueda acceder a los archivos de determinada extension que pueden contener contenidos sensibles: 1 FilesMatch "(\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$" 2 Order allow,deny 3 Deny from all 4 Satisfy All 5 /FilesMatch


PARA FINALIZAR ESTE ARTICULO ¿OS GUSTARIA SABER EL NIVEL DE SEGURIDAD QUE TIENE TU WEB O EL DE TU COMPETENCIA? AQUI LO PUEDE VER