Blinda tu WordPress con .htaccess

blindar

1. Configura el archivo .htaccess

Aparte del uso de plugins, hay una serie de mejoras que se pueden llevar a cabo en el archivo .htaccess, y que junto con el uso de los plugins adecuados y realizar actualizaciones de forma regular la seguridad se verá reforzada añadiendo un nivel extra de protección al que implemente el propio servidor.

El archivo .htaccess mínimo y típico que por defecto debe incluir cualquier instalación de WordPress es:

    <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

Cabe destacar que cualquier añadido que se realice en este archivo debería hacerse “despues” de # END WordPress y nunca antes.

Esto aseguraría que no se rompe ninguna de las funciones de WordPress basadas en .htaccess. Antes de realizar cambios al archivo .htaccess se recomienda encarecidamente realizar una copia de seguridad.

2. Edita el archivo .htaccess

Cuando se habilitan enlaces permanentes (permalinks) en WordPress, se crea automáticamente un archivo .htaccess en el directorio raíz del sitio.

Cuando WordPress escribe un archivo .htaccess, siempre añade los datos entre # BEGIN WordPress y END WordPress. El carácter almohadilla # significa que estas líneas son comentarios y no afectarán a la configuración.

Estos archivos son de gran alcance y un error de sintaxis, como olvidar un carácter de apertura o cierre <, pueden dejar tu sitio inaccesible, por lo que es importante hacer una copia de seguridad de tu archivo .htaccess antes de hacer cambios en el.

Algunos sistemas operativos no permiten crear un archivo .htaccess por lo que la forma más fácil de hacerlo es:

  1. Usando el Bloc de Notas o un editor de texto plano semejante (Notepad ++) para agregar los comandos necesarios.
  2. Guarda el archivo como un archivo txt, por ejemplo: htaccess.txt
  3. Sube el archivo a tu sitio a la carpeta adecuada.
  4. Una vez subido, renombra el archivo htaccess.txt a .htaccess

3. Proteger el archivo wp-config.php

Uno de los archivos más importantes de tu instalación de WordPress es el archivo wp-config.php.

Este archivo se encuentra en la raíz de tu directorio de archivos de WordPress y contiene detalles de configuración de la base de tu sitio, y claves de seguridad de WordPress e información de conexión de base de datos. Esta información, por supuesto, es sensible y cualquier persona que acceda a ella puede acabar afectando a tu sitio.

La mejor forma de proteger este archivo es agregando el siguiente fragmento de código en el archivo .htaccess:

<<files wp-config.php>
order allow,deny
deny from all
</files>

Por supuesto, aun con esta protección, este archivo será accesible a través de FTP, cPanel, etc.

4. Evita el acceso a la carpeta wp-content

La carpeta wp-content contiene imágenes, temas y plugins y es una carpeta muy importante dentro de tu instalación de WordPress, así que tiene sentido evitar que se pueda acceder a esta carpeta de forma no autorizada.

Esto requiere añadir al archivo .htaccess las indicaciones que permitan a los usuarios ver imágenes, CSS, etc., pero proteger los archivos PHP importantes:

  Order deny,allow
    Deny from all
    <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
    Allow from all
    </Files>

5. Desactiva el TRACE de HTTP y TRACK

TRACE y TRACK son métodos HTTP, son funcionalidades por defecto de la mayoría de servidores web Apache utilizados con el propósito de depurar errores. Sin embargo, estos métodos pueden llegar a comprometer la seguridad de tu sitio WordPress, ya que hay algunos ataques como Cross Site Tracing (XST) y Cross Site Scripting (XSS), que pueden robar las cookies y muchas otras informaciones sensibles de tu servidor web.

Afortunadamente estos métodos se pueden desactivar con facilidad mediante la colocación de las siguientes líneas de código en el archivo .htaccess de la raíz de tu Hosting:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

6. Evita la navegación por directorios

La protección de los directorios de WordPress es importante y la seguridad por oscuridad en este caso es justificable. Es decir, se trata de esconder estas carpetas de la vista, lo que impide la navegación a través de los directorios a personas no autorizadas.

Esta es una buena práctica para evitar la exploración de directorios, junto con la aplicación de otras medidas enfocadas a proteger tu sitio.

Para deshabilitar la exploración de directorios debes añadir esto en el archivo .htaccess:

# Navegación de directorios
Options All -Indexes

7. Evita el Hotlinking

El Hotlinking o el robo de ancho de banda, se da cuando se enlazan las imágenes o archivos de tus artículos o post a artículos y/o post de un servidor diferente, normalmente externo y ajeno a ti, donde el ancho de banda que se consume es el tuyo.

Añadiendo este código en tu archivo .htaccess evitarás ser víctima de hotlinking:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?tu_dominio.com/.*$ [NC]
RewriteRule .(gif|jpg)$ http://www.tu_dominio.com/hotlink.gif [R,L]

Tendrás que cambiar la imagen hotline.gif por el nombre del archivo de imagen que quieras mostrar en tu servidor que explica que el hotlinking está desactivado en tu sitio.

8. Restringe el acceso al área de administración (dashboard)

Hay muchas formas de proteger el acceso al dashboard de WordPress (directorio /wp-admin), algunas las hemos explicado en este blog, en otros artículos.

Una forma sencilla de restringir el acceso si tu conexión a Internet utiliza una dirección IP fija y siempre accedes a tu sitio desde el mismo lugar, es mediante la creación de un nuevo archivo .htaccess con el siguiente fragmento en la carpeta /wp-admin:

order deny,allow
allow from 192.168.5.1 (reemplaza la IP por tu IP WAN -no IP local-)
deny from all

Cambia la dirección IP a tu propia dirección IP (puedes averiguar tu dirección IP en http://www.cualesmiip.com/).

Esto te permitirá tener acceso a área de administración de tu sitio, bloqueando todos los demás intentos de acceso a esta carpeta desde otras IPs.

Adicionalmente puedes añadir la dirección IP de otros administradores de tu sitio, o incluso de otros lugares desde los que te conectas habitualmente, teniendo en cuenta que no es recomendable añadir IPs dinámicas por razones de seguridad.

9. Prohibe el acceso a IPs no deseadas

Si utilizas extensiones como Wordfence que te permiten ver que IPs de forma persistente y constante tratan de acceder a tu sitio, principalmente al dashboard /wp-admin para lanzar un ataque de fuerza bruta, puedes prohibir estas IPs utilizando el siguiente código en el archivo .htaccess:

<Limit GET POST>
  order allow,deny
  deny from 202.090.21.1
  allow from all
</Limit>

Este código impedirá que la citada IP no pueda volver a acceder a tu sitio. También puedes agregar más IPs replicando la línea de negación deny from, por ejemplo:

<Limit GET POST>
order allow,deny
deny from 202.090.21.1
deny from 211.190.151.122
allow from all
</Limit>

10. Protege el archivo .htaccess

No tiene sentido aplicar protecciones adicionales a carpetas, etc., sino se protege el propio archivo .htaccess pues este archivo suele ser objetivo de atacantes para invalidar otras protecciones adicionales.

Cuando alguien intenta acceder a tu archivo .htaccess, el servidor genera automáticamente un error 403 Prohibido, incluso con permisos predeterminados del archivo.

Protegerlo es sencillo implementando el siguiente código en el archivo .htaccess de la carpeta principal del sitio WordPress:

<Files .htaccess>
order allow,deny
deny from all
</Files>

No olvides compartir esta información con tus amigos en TwitterFacebookGoogle+ y tus otras redes sociales.

Fuente:  WebEmpresa.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *