Saltar al contenido principal

Proteger WordPress con .htaccess

Inicio / htacces / Proteger WordPress con .htaccess

Configurar el archivo .htacces es una forma de proteger nuestro sistema WordPress, anteriormente vimos algunas formas de proteger nuestro WordPress en Seguridad en Worrdpress, en esta ocasión vamos a ver algunas de las configuraciones que podemos utilizar en nuestro .htaccess para proteger nuestro sistema.

Algunas configuraciones pueden crear conflicto con configuraciones existentes o con vuestro servidor, así que haz una copia de tu archivo .htaccess antes de modificarlo.

 

Bloquear comentarios a peticiones no referenciadas

#bloquear comentarios a peticiones no referenciadas 
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*tu_dominio.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

 

Denegar acceso a wpconfig

#denegar acceso a wpconfig
<files wp-config.php>
order allow,deny
deny from all
</files>

 

Asegurar los plugins

#asegurar los plugins
<Files ~ "\.(js|css)$">
  order allow,deny
  allow from all
</Files>

 

Acceso a wp-login.php solo IPs permitidas

#acceso a wp-login.php solo IPs permitidas
<files wp-login.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</files>

 

Bloquea y protege wp-content

#bloquea y protege wp-content
Order deny,allow
Deny from all
<Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
Allow from all
</Files>

 

Bloquea todas las peticiones de user-agent

#bloquea todas las peticiones de user-agent
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
Order Allow,Deny
Allow from all
Deny from env=bad_bot

 

Crea una página personalizada para cada tipo de error

#crea una página personalizada para cada tipo de error
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

 

Deshabilita la navegación por directorios de tu sitio

#deshabilita la navegación por directorios de tu sitio
Options All -Indexes

 

Protege el archivo .htaccess

#protege el archivo .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

 

Prevenir el hotlinking

#prevenir el hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?misitio\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|bmp|png)$ http://hotlink.misitio.com/no_se_permite_hotlinking.jpg [L]

 

Proteger ataques DOS limitando el tamaño de subida de archivos

#proteger ataques DOS limitando el tamaño de subida de archivos  
LimitRequestBody 10240000 

 

Protege archivos vulnerables

#protege archivos vulnerables
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

 

Evita sql injection

#evita sql injection
RewriteEngine On
Options +FollowSymLinks
ServerSignature Off
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} ^.*(\\r|\\n|%0A|%0D).* [NC,OR] 
RewriteCond %{HTTP_REFERER} ^(.*)(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{HTTP_COOKIE} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{REQUEST_URI} ^/(,|;|:|<|>|">|"<|/|\\\.\.\\).{0,9999}.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*\.[A-Za-z0-9].* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC]
RewriteRule ^(.*)$ hack.cfm

 

Seguridad extra para php

#seguridad extra para php  
php_flag safe_mode on  
php_flag expose_php off  
php_flag display_errors off

 

Evita escaneos

#evitar escaneos
RewriteEngine On  
Options +FollowSymLinks 
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]  
RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]  
RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]  
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]  
RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python|nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR]  
RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]  
RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]  
RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR]  
RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]  
RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]  
RewriteRule ^(.*)$ error.php [NC]

 

No permitir acceso a .htaccess

#no permitir acceso a .htaccess  
<Files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>

 

 

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continúas navegando entendemos que das tu consentimiento y aceptas nuestra Política de cookies. Pulsa en Aceptar para dejar de ver este mensaje

ACEPTAR
Aviso de cookies