El archivo .htaccess
aunque no pertenece a la instalación de WordPress, es necesario, para que funcionen muchas cosas y que nos puede ayudar a segurar nuestra instalación de WP.
El archivo .htaccess lo puedes encontrar en la carpeta raíz de tu sitio web, exactamente donde se encuentra wp-config.php
El archivo .htaccess por defecto de WordPress
con los enlaces permanentes configurados para mostrar URL amigables:
# 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
A partir de aquí podemos añadir mejoras y varias personalizaciones que harán más seguro nuestro wordpress.
.htaccess básico para proteger WordPress
Una de mis personalizaciones favoritas para casi cualquier instalación, sin usar plugins de seguridad es esta:
# Asegurando WordPress # Desactivar la firma de servidor # (Si en los mensajes de error aparece la versión de Apache y el email del admin, coloca esto) ServerSignature Off # Desactivar el listado de carpetas y archivos Options All -Indexes # Protegiendo el mismo fichero htaccess (puede fallar en algunos servidores) order allow,deny deny from all # Protegiendo htaccess de manera extrema (puede fallar en algunos servidores) order allow,deny deny from all satisfy all # Protegiendo wp-admin por IP AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Access Control" AuthType Basic order deny,allow deny from all # IP cuando estoy en casa allow from xxx.xxx.xxx.xx # IP cuando estoy en el trabajo allow from xxx.xxx.xxx.xxx # IP de otro usuario con permisos allow from xxx.xxx.xxx.xx # Protegiéndonos de los comentarios spam RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*ilvwp.com* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L] # Desactivando el hotlinking con un mensaje de aviso RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://ilvwp.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^https://159.65.95.11$ [NC] RewriteCond %{HTTP_REFERER} !^https://ilvwp.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^https://159.65.95.11$ [NC] RewriteCond %{HTTP_REFERER} !google. [NC] RewriteCond %{HTTP_REFERER} !msn. [NC] RewriteCond %{HTTP_REFERER} !live. [NC] RewriteCond %{HTTP_REFERER} !yahoo. [NC] RewriteCond %{HTTP_REFERER} !gravatar.
Otras forma de proteger WordPress con .htaccess
También podemos añadir personalizaciones para cosas muy específicas o cuando nuestro proyecto tenga necesidades muy concretas.
Evita el acceso a un archivo específico con .htaccess
Supongamos que tienes un respaldo de tu base de datos almacenada en el servidor pero no quieres que por nada del mundo alguien pueda tener acceso a ella desde la web.
# Evitar la visualizlación de un archivo específico <files Respaldo_DB.zip> order allow,deny deny from all </files>
Solicitar contraseña para acceder a un archivo con .htaccess
Si por el contrario deseas que el archivo este disponible pero solo se pueda acceder mediante el ingreso de una contraseña, puedes hacer lo siguiente:
# proteger con contraseña un archivo <Files Respaldo_DB.zip> AuthType Basic AuthName "Aviso" AuthUserFile /home/ruta/.htpasswd Require valid-user </Files>
Hay un paso previo y es la creación del fichero .htpasswd y o puedes crear con este htpasswd Generator.
Si te gusta la personalización avanzada puede que quieras echar un ojo a: wp-config.php Configuración de WordPress Avanzada