Resumen del Contenido
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 ^(.*)$ https://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} !^https://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.