Wordpress

Seguridad en #WordPress con .htaccess

1 marzo, 2016

Vamos a asegurar nuestro WordPress para evitar sorpresas, ataques por fuerza bruta o spam. Prepárate!

Ya hablamos en su día la utilidad del fichero .htaccess. Hoy vamos a concretar para aquellos casos que tengamos instalado un WordPress, veremos como asegurar nuestro WordPress para evitar sorpresas, ataques por fuerza bruta, spam… Veremos que hacer WordPress un poco mas seguro. Recuerda que podemos tener un fichero .htaccess para cada directorio y no tiene porque ser iguales en todos ellos. Dependerá del contenido de ese directorio.

Vamos a partir del fichero .htaccess que tienes una vez instalado tu WordPress y donde en los enlaces permanentes has configurado con el nombre de las entradas (esto es bueno para el SEO).

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

 

1. Bloquear IPs de usuarios o bots indeseados

Apache puede ser utilizado para bloquear usuarios o bots indeseados a nuestra página web o blog. Este código permite visitar la página web o blog a cualquier persona, excepto a quien tenga las siguientes direcciones IP. Solo tienes que añadir estas líneas a tu fichero .htaccess para bloquear las direciones IP indicadas (estos son un ejemplo, las cambias y pones las tuyas)

<Limit GET POST PUT>
order allow,deny
allow from all
deny from 123.456.789
deny from 95.121.788
deny from 203.956.789
deny from 127.456.780
</LIMIT>

2. Redireccionar hacia www o sin www con .htaccess

Esto, mas que por seguridad, es para que escribas o no las www con tu dirección de dominio siempre te envíe al mismo sitio. En nuestro caso, si escribes tutotialmonsters.com siempre irá a www.tutorialmonsters.com (o al revés, como mas te guste)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.tutorialmonsters.com [NC]
RewriteRule ^(.*)$ http://tutorialmonsters.com/$1 [L,R=301]
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^tutorialmonsters.com [NC]
RewriteRule ^(.*)$ http://www.tutorialmonsters.com/$1 [L,R=301]

3. Bloquear comentarios a peticiones no referenciadas (Spam)

Para evitar que los spammers publiquen o ataquen tu página web o blog. Esa basura que nos invade, esa mierda que no deja de llegar, pues directo al cubo de la basura. Recuerda cambiar el nombre del dominio por el tuyo.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*tutorialmonsters.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

4. Denegar acceso al fichero de configuración wp-config de WordPress

El archivo wp-config.php de WordPress incluye toda la información importante, como el nombre de base de datos, usuario, contraseña de acceso a la base de datos. Es muy importante, es vital tenerlo bien protegido. Pues para ello denegamos el acceso a dicho fichero y resuelto. La parte que ves delante de la almuadilla, #, es un comentario. Te sirve como guía para futuros cambios en el fichero .htaccess

# proteger el fichero wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

En el código de arriba indica que protege el fichero llamado wp-config.php denegando el acceso a todos (deny from all).

Con este mismo sistema puede proteger cualquier fichero de tu web. Por ejemplo, otro fichero para proteger sería el propio fichero .htacees

# asegurando el archivo htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>

5. Desactivar la firma del Servidor

Con eso desactivamos esta opción y nos aseguramos que el servidor NO muestre ningún dato extra, como puede ser versión de sistema operativo, datos de la tecnología usada. Cuanto menos información gratis demos mejor.

# desactiva la firma del servidor
ServerSignature Off

6. Proteger directorios desactivando la ejecución de scripts

Para evitar la ejecución de scripts maliciosos nada mejor que asegurar los directorios que puedan verse afectados. Para nuestro caso es útil para proteger el directorio donde subimos las imágenes en nuestro wordpress, donde subimos el contenido media. Cambia las extensiones de script a lo que necesites. En este caso, el nuevo fichero .htaccess que vamos a crear tendríamos que copiar en el directorio wp-content/uploads y solamente con este código. No sirve para el fichero .htaccess copiado en el directorio raiz.

# proteger directorio desactivando la ejecución de scripts
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

7. Proteger os formularios de contacto de WordPress

Un modo de proteger los por defecto inseguros formularios de contacto de WordPress es verificar el dominio desde donde se llama al formulario. Recuerda cambiar el dominio y página de contacto del ejemplo por los tuyos, aquí indicamos que el dominio es tutorialmonsters.com y que la página de contacto es contacto.php

# proteger formularios de contacto de wordpress depende de quien lo invoca
RewriteCond %{HTTP_REFERER} !^http://www.tutorialmonsters.com/.*$ [NC]
RewriteCond %{REQUEST_POST} .*contacto.php$
RewriteRule .* - [F]

 

8. Desactivar ejecución ficheros en directorios

Esto nos sirve para desactivar un tipo de ficheros determinado por su extensión. Por ejemplo si quieres desactivar los ficheros .php, .js en un determinado directorio, copia esto en el fichero .htaccess

RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off

Con esto tendremos nuestro blog un poco mas seguro.

También podría gustarte

Sin Comentarios

Dejar un Comentario