¿Cuántas veces no nos ha pasado de que nuestro sitio web se ve comprometido bajo ataques de hackers? Esto se debe a que la seguridad WordPress no es óptima.
Algunos síntomas que podemos percatar cuando nuestro sitio web a sido hackeado son: al darle clic a cualquier área o link nos manda a un sitio que no tiene nada que ver con el nuestro, nos aparece algún código extraño en la parte del comienzo de nuestra web o a grandes extremos, Google nos bloquea por contenido malicioso (La famosa pantalla roja).
Cuando ésto pasa, obviamente nos preocupamos ya que perdemos reputación de nuestro sitio web, nadie entrará a un lugar que contenga virus. Existen varios tipos de ataques pero en esta ocasión no nos enfocaremos a ellos sino a cómo reforzar nuestra web para evitarlos. Para ello utilizaremos el archivo .htaccess.
El archivo .htaccess (archivo de configuración distribuida) en directorios de tu sitio web, es un archivo de configuración que se puede utilizar para anular la configuración del servidor web (si este lo permite). Con los códigos adecuados es posible habilitar o deshabilitar funcionalidades y características adicionales para proteger tu sitio de spammers, hackers y otras amenazas.
A continuación le enseñaremos a como realizar cambios fáciles al archivo .htaccess para reforzar la seguridad WordPress.
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 WordPress se verá reforzada añadiendo un nivel extra de protección al que implemente el propio servidor.
Por default el archivo .htaccess que se crea al momento de la instalación de WordPress viene de esta manera:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # 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.
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:
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 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:
# protect wpconfig.php <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.
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 los archivos de esta carpeta de forma no autorizada.
Para ello tenemos que añadir al archivo .htaccess el siguiente código:
<Files ~ "\.(js|css)$"> order allow,deny allow from all </Files>
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 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]
La protección de los directorios de WordPress. 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. De este manera aumentas la seguridad WordPress.
Para añadir una contraseña a los directorios directorios debes añadir esto en el archivo .htaccess:
AuthType Basic AuthName "restricted area" AuthUserFile /usr/local/var/www/html/.htpasses require valid-user
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.
Hay muchas formas de proteger el acceso al dashboard de WordPress (directorio /wp-admin).
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, deberás añadir este fragmento de código a tu .htaccess y nadie podrá entrar al panel administrativo de WordPress más que tú.
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Wordpress Admin Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all allow from xx.xx.xx.xx </LIMIT>
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.
Si utilizas plugins 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:
## USER IP BANNING <Limit GET POST> order allow,deny deny from 200.49.176.139 allow from all </Limit>
Si observas que son varias IP’s que intentan atacar tu sitio web puedes agregar más IPs replicando la línea de negación deny from, por ejemplo:
order allow,deny deny from 202.090.21.1 deny from 211.190.151.122 allow from all
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, es parecido a la protección del archivo wp-config para ello implementamos el siguiente código en el archivo .htaccess de la carpeta principal del sitio WordPress:
<files .htaccess> order allow,deny deny from all </files>
Como dice el dicho “Hombre seguro vale por dos”. Es mejor reforzar la seguridad wordpress desde antes de poner en producción tu sitio web ya que si tu sitio es hackeado, ésto implica una serie de pasos para solucionarlo que te puede costar tiempo y en algunos casos dinero. Además recuerda que una vez que hayan hackeado tu sitio web, seguramente intentarán hacerlo de nuevo porque ya descubren vulnerabilidades.
Espero que pongas en marcha estos tips mencionados y así ayudar a que tus sitios web estén libres de hackers.
Puedes suscribirte a nuestra lista de correos para recibir más artículos como éste.
Somos un grupo de freelancers encargados al desarrollo web y de aplicaciones móviles innovando en cada proyecto que nuestros clientes nos confían. Desarrollamos sitios web, aplicaciones web y aplicaciones móviles.
Nuestro gran equipo se apasiona con su trabajo por lo que los resultados siempre son con calidad.