Siempre es recomendable mejorar la seguridad de tu página web bloqueando accesos, y una de las formas en que puedes hacerlo es mediante la configuración de un fichero .htaccess.
A continuación te mostramos algunas de las reglas más comunes que se pueden añadir al fichero .htaccess para segurizar tu web.
Bloquear acceso al propio archivo .htaccess
Aseguramos el fichero .htaccess:
<Files .htaccess>
order allow,deny
deny from all
</Files>
Bloquear acceso a un archivo específico
<files nombre.jpg>
order allow,deny
deny from all
</files>
Bloquear acceso a varios archivos
Debemos tener en cuenta que las extensiones de los ficheros pueden ser cualquiera que nos interese:
<FilesMatch “\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
Order Allow,Deny
Deny from all
</FilesMatch>
Evitar y permitir acceso por navegador a una carpeta sin index
Evitar el acceso por el navegador:
Options All -Indexes
Permitir el acceso por el navegador:
Options All +Indexes
Evitar el listado de directorios
IndexIgnore *
Evitar que se muestren tipos de archivo
IndexIgnore *.wmv *.mp4 *.avi *.etc
Disfrazar la extensión de los archivos
Los archivos .foo se reconocerán como PHP:
AddType application/x-httpd-php .foo
Proteger directorio de un IP y/o dominio
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 12.345.67.890
deny from .*domain\.com.*
</Limit>
Denegar todo acceso a un directorio excepto al IP especificado
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 123.123.123.123
allow from .*domain\.com.*
</Limit>
Bloquear visitantes que provienen del dominio especificado
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} scumbag\.com [NC,OR]
RewriteCond %{HTTP_REFERER} wormhole\.com [NC,OR]
RewriteRule .* – [F]
</ifModule>
Denegar o permitir acceso a IP
Denegar acceso de rango de IP (CIDR)
Deny from 10.1.0.0/16
Deny from 80.0.0/8
Denegar rango de IP
Deny from 99.88.77.66
Deny from 99.88.77
Deny from 99.88
Deny from 99
Permitir rango de IP
Allow from 99.88.77.66
Allow from 99.88.77
Allow from 99.88
Allow from 99
Evitar Hotlinking
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?dominio\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg)$ http://www.dominio.com/eatme.jpe [R,NC,L]
</ifModule>
Puedes agregar otros sitios debajo de la línea en la que aparece el dominio:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?dominio\.com/.*$ [NC]
Bloquear robots maliciosos
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* – [F]
Se puede personalizar el error generado a estos robots modificando la última línea RewriteRule.
Bloquear “referrers” específicos
En este ejemplo se bloquea a1b2.com:
RewriteCond %{HTTP_REFERER} ^http://www.a1b2.com$
RewriteRule !^http://[^/.]\.dominio\.com.* – [F,L]
Permitir al usuario descargar o abrir archivos multimedia
Por lo general solo se abren:
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .wmv
AddType application/octet-stream .mp3
Protección contra ataques DOS, limitando el tamaño de archivos que suben al server
(10000000 bytes equivale a 10 megabytes). Esta línea es útil si permites que los usuarios de tu sitio suban archivos:
LimitRequestBody 10000000
Proteger directorios evitando la ejecución de scripts
Edita las extensiones según lo requerido
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
Bloqueo para WP contra ataques wp-login en .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP_REFERER} !^<a class=”moz-txt-link-freetext” href=”http://%28.*%29?.dominio.com”>http://(.*)?.dominio.com</a> [NC]
RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/wp-admin$
RewriteRule ^(.*)$ – [R=403,L]
</IfModule>
Aquí te explicamos también cómo aplicar algunas medidas de seguridad en tu WordPress.