Proteger un blog con htaccess es sencillo si sabes estos pequeños trucos

A veces pensamos que planear una buena defensa, más alla de instalar un plugin, es complicado.

Pero nada más lejos de la realidad.

Proteger un blog con htaccess es sencillo, con unos pequeños trucos que te quiero presentar, y veras que luego solo consiste en ¡copiar y pegar!

Vale, proteger un blog con htaccess será sencillo, pero ¿que es?

¿En serio? ¿No me lees? Vale que últimamente haya escrito menos, pero justo el último articulo habla sobre como acelerar un blog usando el fichero .htaccess, y en el te explico que es y hace ese fichero.

Pues te resumo.

.htaccess es un fichero de configuración especial, normalmente en el root de tu servidor web, y es usado por apache o nginx (el software de tu servidor web), para poder gestionar tus directorios, accesos, redirecciones, etc…

¿ya te suena más para que sirve?

El caso es que no vale solo para acelerar nuestro sitio web, o para las redirecciones.

Podemos usarlo para protegernos de ataques.

¿Te interesa saber como?

Te presento mis trucos para defenderme con htaccess

Partimos de la base de que un fichero .htaccess típico suele contener este código:

# BEGIN WordPress  RewriteEngine On  RewriteBase / RewriteRule ^index.php$ - [L]  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php< [L]  # END WordPress  

Aparte de lo que añadieras para mejorar la velocidad de carga. Pero ya sabes que cualquier cosa que añadas, va al final, y sobre todo tras el comentario #END WordPress.
¡Ah! y realiza tus copia de seguridad antes.

Truco #1. Protege el fichero wp-config.php

Ya sabes que el fichero wp-config se encuentra en el directorio raíz de tu wordpress, y contiene datos muy importantes, como la conexión a la base de datos.

Aunque no es un fichero accesible o visible desde fuera, no esta de más un poco de protección extra.

Añade este código a tu fichero .htaccess, para prevenir accesos no deseados.

order allow,deny  deny from all    

Truco #2. Previene la exploración de directorios.

Como WordPress es tan popular, todo el mundo conoce la estructura de directorios que tiene.

Por tanto, siempre puedo probar por ejemplo a entrar en www.tudominio.com/wp-content/plugins

Y si tengo suerte y no esta protegido, me listará todos los plugins que tienes, siendo fácil averiguar si alguno es vulnerable.

Asi que para prevenir, usa este código en tu fichero.

# directory browsing  Options All -Indexes  

Truco #3. Acceder solo al panel de admin desde tu IP

No soy muy amigo de este truco, ya que solo podrás acceder desde esa IP, y a veces se necesita acceder desde un tablet o dispositivo móvil por ejemplo, pero si siempre trabajas en tu blog desde casa o la oficina, esta es una foma eficaz de protegerlo.

Además hoy en día, si tienes por ejemplo ADSL y telefonía IP, tu IP será fija, aunque no la hayas contratado asi.

Para hacer esto usaremos este truco:

 order deny,allow   allow from 255.255.255.255   deny from all

Por supuesto sustituye 255.255.255.255 por tu propia ip. La puedes averiguar en cualesmiip.com

Truco #4. Protege el fichero .htaccess

No es de locos que despues de gastar tu tiempo protegiendo a fondo tu blog configurando el fichero .htaccess al final lo dejemos sin proteger.

Con este truco pararas cualquier intento de localziar un fichero que empiece por «hta».

 order allow,deny   deny from all   satisfy all  

Truco #5. Usa la lista 5G

Pues la lista 5G es una sencilla lista para el fichero .htaccess que bloquea una serie de usos malintencionados ya detectados.

Aunque evidentemente debería actualizarse, de por si ya nos va quitando algo, y además va muy bien con WordPress.

Aqui te dejo la lista:

# 5G BLACKLIST/FIREWALL (2013)  # @ http://perishablepress.com/5g-blacklist-2013/    # 5G:[QUERY STRINGS]    	RewriteEngine On  	RewriteBase /  	RewriteCond %{QUERY_STRING} ("|%22).*(<|>|%3) [NC,OR]  	RewriteCond %{QUERY_STRING} (javascript:).*(;) [NC,OR]  	RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]  	RewriteCond %{QUERY_STRING} (\|../|`|='$|=%27$) [NC,OR]  	RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]  	RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]  	RewriteCond %{QUERY_STRING} (boot.ini|echo.*kae|etc/passwd) [NC,OR]  	RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|[|%) [NC]  	RewriteRule .* - [F]      # 5G:[USER AGENTS]    	# SetEnvIfNoCase User-Agent ^$ keep_out  	SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out  	  		Order Allow,Deny  		Allow from all  		Deny from env=keep_out  	      # 5G:[REQUEST STRINGS]    	RedirectMatch 403 (https?|ftp|php)://  	RedirectMatch 403 /(https?|ima|ucp)/  	RedirectMatch 403 /(Permanent|Better)$  	RedirectMatch 403 (=\'|=\%27|/\'/?|).css()$  	RedirectMatch 403 (,|)+|/,/|{0}|(/(|...|+++|||\"\")  	RedirectMatch 403 .(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$  	RedirectMatch 403 /(contac|fpw|install|pingserver|register).php$  	RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107_)  	RedirectMatch 403 (eval(|_vti_|(null)|echo.*kae|config.xml)  	RedirectMatch 403 .well-known/host-meta  	RedirectMatch 403 /function.array-rand  	RedirectMatch 403 );$(this).html(  	RedirectMatch 403 proc/self/environ  	RedirectMatch 403 msnbot.htm)._  	RedirectMatch 403 /ref.outcontrol  	RedirectMatch 403 com_cropimage  	RedirectMatch 403 indonesia.htm  	RedirectMatch 403 {$itemURL}  	RedirectMatch 403 function()  	RedirectMatch 403 labels.rdf  	RedirectMatch 403 /playing.php  	RedirectMatch 403 muieblackcat      # 5G:[REQUEST METHOD]    	RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)  	RewriteRule .* - [F]      # 5G:[BAD IPS]    	Order Allow,Deny  	Allow from all  	# uncomment/edit/repeat next line to block IPs  	# Deny from 123.456.789      # 5G:[WordPress]     RedirectMatch 403 /$&   RedirectMatch 403 (?i)/&(t|title)=   RedirectMatch 403 (?i)/.(bash|git|hg|log|svn|swp|tar)   RedirectMatch 403 (?i)/(1|contact|i|index1|iprober|phpinfo|phpspy|product|signup|t|test|timthumb|tz|visit|webshell|wp-signup).php   RedirectMatch 403 (?i)/(author-panel|class|database|manage|phpMyAdmin|register|submit-articles|system|usage|webmaster)/?$   RedirectMatch 403 (?i)/(=|_mm|cgi|cvs|dbscripts|jsp|rnd|shadow|userfiles)    

¡Esto es todo por hoy!

Espero que estos trucos te sirvan para hacer de tu web un lugar más seguro.

Usar todos los recursos a tu alcance es necesario para alejar a hackers y malware.

¿Estas probando estas técnicas? ¿Qué tal te fue?

Acceso gratuito
a la Academia de
Hormigas en la Nube

+20 cursos disponibles sobre herramientas, marketing y ventas

Por tiempo limitado estoy regalando el acceso a la librería de recursos de la Academia de Hormigas en la Nube.

Cursos de ActiveCampaign, Elementor, Beaver Builder, WordPress, Copywriting, ventas, email marketing y más te estan esperando dentro. Disponible gratis por tiempo limitado.

Mockup escritorio herramientas
Ir arriba