Quise hacer un articulo sobre un tema bastante importante en cualquier instalación de WordPress, y en un solo articulo englobar todos los temas que se van llegando y algunos cambiando y es que estos consejos te pueden servir para reforzar la seguridad de tus proyectos en WordPress y por sentido común en cualquier aplicación web que publiques, recuerda que estos consejos no son definitivos y pueden ir cambiando, asi que no te confíes y sigue investigando.

¿Quien nos puede hackear?

La respuesta es sencilla: “cualquiera”, un hacker, un lammer, la competencia, empresas de spam, etc. WordPress en si es bastante seguro y si existe una vulnerabilidad que como aplicacion usada por millones de sitios web se soluciona en cuestion de minutos mediante una actualizacion, por lo tanto tener la web actualizada (core, plugins y temas) es fundamental.

Equilibrio

Recuerda que existen formas de mantener seguro a WordPress, pero no exageres tal ves instalando un plugin de seguridad hagas mas lenta tu web o se creen tablas innecesarias en la base de datos lo que haga que tu servidor se esfuerce más; por lo que si necesitas experimentar hazlo en un sitio de prueba y cuando ya tengas completo conocimiento del funcionamiento del cambio que estes haciendo recien llevalo a un sitio de Produccion.

No perjudiques a tus usuarios por tener una web muy segura, recuerda que de ellos depende el exito de tu sitio web.

¿Servidores Dedicados o compartidos?

Aquí viene la subpregunta, ¿para que?, si tienes un sitio pequeño y iniciando, un servidor compartido es la mejor opción por caracteristicas y precio; pero eso si, cómpralo desde una empresa conocida y que tenga una gran cantidad de usuarios ya registrados (desaconsejo Godaddy o 000Webhost.com). Un hosting muy económico o gratis puede representar un riesgo para tu web

Pero, sí tu web ya tiene muchas visitas (mas de mil diarias), estoy seguro que te gustará invertir en un Servidor dedicado, pero eso si, en seguridad tu te haces cargo o contrata a un especilista en seguridad, con las miles de visitas diarias que tengas lo podrás pagar (puedes investigar acerca de adsense para este apartado)

¿Que hago con el archivo install.php?

Muchos dicen que se debe eliminar este archivo, aunque no es un grave riesgo de seguridad, seria un consejo eliminarlo, ya que si por algún motivo el servidor no puede acceder al archivo wp-config.php el sitio se volveria a instalar automáticamente (aunque esto es poco probable), esto por un ataque dirigido a nuestra web.

¿Debo cambiar el prefijo de la base de datos?

La respuesta es: no es necesario, pero si quieres hazlo, recuerda que estos consejos que no son necesarios  te pueden llevar tiempo y quitar productividad; pero son una forma de disuadir a un atacante que por alguna falla en el servidor haya logrado acceder a tu base de datos y con asumir que la tabla tiene el prefijo “wp_” pueda descargar tus tablas, (de este tema hablaremos en un post sobre seguridad).

Antes de la instalacion

  • Al momento de instalar el wordpress te preguntará cambiar el prefijo de “wp_” le puedes poner lo que quieras, pero que tenga esta forma: “mipagina_”

Despues de la instalacion

  • Mediante esta sentencia SQL (lo puedes hacer desde phpmyadmin)
    • RENAME  table wp_nombre_de_la_tabla TO nuevoprefijo_nombre_de_la_tabla (repetir para cada tabla)

Permisos de archivos mediante Plugins

Acunetix WP  Security: te brinda una serie de herramientas e informacion acerca de las configuraciones de tu instalación de wordpress, en este caso los permisos de escrituta y lectura de varios archivos de wordpress, estos cambios tambien se pueden hacer de forma manual si es que te da algún problema

Te Brinda informacion clara acerca de los cambios en permisos de archivos y carpetas recomendadas

Te Brinda informacion clara acerca de los cambios en permisos de archivos y carpetas recomendadas

Mas recomendaciones que puedes aplicar manualmente para disuadir a los atacantes

Mas recomendaciones que puedes aplicar manualmente para disuadir a los atacantes

Eliminar lo que no es necesario

Dentro de plugins puedes eliminar el plugin: “Hello Dolly” que tu instalacion no requiere, y ademas cualquierá no uses; ademas que ocupa espacio en el servidor

Dentro de Temas: eliminar cualquiera no uses y los plugins por defecto que wordpress

Cuanto menos usuarios mejor

si creaste usuarios que alguna vez necesitaste y que ya no deban acceder eliminalos, solo ten activos los usuarios que sean necesarios; y tambien controla los permisos de usuarios en WordPress.

Deshabilitar registro de usuarios

Si tu web no requiere que los usuarios se registren, puedes deshabilitar esta opcion, que los bots utilizan para crearse cuentas falsas (aunque puedes solucionarlo con un plugin).

Para deshabilitar esta opción entra en Ajustes -> Generales,  y desmarca la opcion: “cualquiera puede registrase”.

registro

NO usar el usuario “admin”

de preferencia no usar este usuario prederminado, si ya lo usas puedes crear otro usuario con el nivel de administrador y luego iniciando sesion con ese usuario nuevo eliminar el anterior

Usar contraseñas robustas

Es algo lógico y no solo para wordpress, tener una contraseña del tipo “1234” es un riesgo grave de seguridad; en cambio una contraseña del tipo “cua3463@@.CUAmipagina” es una buena opcion y es mas o menos facil de recordar.

Wordpres te da una herramienta para generar contraseñas, eso si busca una forma de memorizarla

contraseña-wordpress

o puedes usar esta aplicacion.

Bloqueando el Login de Usuario

Los programas hackers intentan “adivinar” nuestra contraseña, y lo pueden intentar las veces que quieran, a esto se le llama ataque de “fuerza bruta”, para evitar esto es necesario limitar la cantidad de intentos de logueo a un limite razonable, el plugin Login LockDown nos permite esto, bloqueando la cantidad de intentos de acceso, y si supera este limite automaticamente el logueo se bloquea

Cambiar la URL de acceso Wp-admin

para acceder a nuestro sitio lo normal es hacer desde www.tudominio.com/wp-admin esto es un riesgo ya que cuando un bot encuentra que el sitio es wordpress, ya sabrá que podra atacar mediante esta url, pero nosotros somos mas inteligentes y cambiaremos esta url mediante el plugin HC Custom WP-Admin URL podemos cambiarlo a algo como www.tudominio.com/inicioadministrador y los hackers no lo adivinarán nunca.

Tener todo actualizado

Como siempre para cualquier aplicación web, antes de realizar algún cambio es necesario hacer una copia de seguridad; wordpress brinda la forma mas fácil de tenerlo todo al día (nucleo, plugins y temas); pero si queremos programar para que el sistema se autoactualice tal ves necesitaras este plugin, recuerda ir haciendo las actualizaciones una a una y ver como va tu web; ademas de ello si usas un plugin o tema de pago es necesario tener la “key” que te brindó el vendedor.

Reforzando la seguridad del archivo wp-config.php

Definir claves únicas de autentificacion

En el archivo wp-config.php encontraremos este codigo

el cual deberemos reemplazar con el que nos genera esta pagina https://api.wordpress.org/secret-key/1.1/salt/

Lo guardamos en el mismo archivo, y lo subimos a nuestro servidor, y listo, tendremos mas seguridad en nuestra instalacion

Seguridad en el archivo .htaccess

Ahora limitaremos el acceso al archivo wp-config.php mediante un codigo en el archivo .htaccess que se encuentra en la raiz de nuestra instalacion de WordPress. Agregaremos al final del mismo este pedazo de codigo

#Proteccion del archivo wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

lo guardamos y listo.

Captcha en el formulario de Acceso

Como dijimos anteriormente los hackers utilizan este formulario para realizar ataques, por eso les haremos el trabajo dificil y pondremos un imagen con un texto que solo un humano podria entender, para ello usaremos el plugin Easy captcha , con el que ademas agregará este mismo captcha en el formulario de comentarios de cada articulo.

Borrar el archivo readme.html

WordPress por defecto instala en la raiz de la instalacion de wordpress, el cual debemos borrar para despistar a los hackers del CMS que estamos usando y la version del mismo, este mismo archivo se vuelve a crear cuando actualizamos el sistema por lo que debemos volver a borrarlo, no le cambies de permisos porque haras caer el sistema, solo borralo y listo.

Quitando informacion de WordPress al publico

Esta informacion que quitaremos es usada por un atacante, y lo recomedable es agregarla al archivo functions.php que se encuentra en la carpeta de plantillas de wordpress wp-content/themes/plantilla/functions.php, el condigo que agregaremos es el siguiente (al final del archivo).

Externalizar Comentarios

Nuestra instalación de wordpress brinda la opción de que los usuarios puedan hacer comentarios en nuestros artículos, los cuales son una buena eleccion para crear interaccion y debate; pero aunque pueden ser un riesgo de seguridad y el uso intensivo del servidor (si tienes mucha interaccion con tus usuarios seria bueno contratar un servidor dedicado), y para evitar el spam en los comentarios puedes habilitar Akismet (ya viene preinstalada, si es que no la borraste); ademas  existen otras opciones como usar los comentarios de facebook, o los que brinda disqus, pero los comentarios hechos con estas plataformas no son indexados por google pero por otro lado usar los comentarios de facebook ayudan a viralizar el articulo, una eleccion que se los dejo a mis lectores segun su prioridad

Verificar si google si nuestra pagina es un riesgo

Para ello usaremos esta herramienta de google donde pondremos nuestra url, el resultado nos lo dirá.

Otras dos buenas opciones son usar la herramienta de Sucuri y la de VirusTotal, realizaremos el mismo procedimento

Identificar malware en nuestro sitio

Este plugin identifica posibles archivos maliciosos en nuestro sitio, no los borra, pero si los identifica para luego borrarlo manualmente.

Otra buena opción con muchas herramientas de seguridad es Sucuri Security SiteCheck, con bastantes opciones y consejos que puedes aplicar en tu sitio, te dejo investigar sus funciones por tu cuenta, yo lo tengo instalado en muchos de mis sitios.

Protección frente a Hotlinking

Muchas paginas que suelen robar contenido (por ejemplo taringa), no solo copian los textos, sino tambien imagenes, los cuales pueden consumir nuestros recursos sin brindarnos un beneficio, es por eso que esta solucion evitara que, al menos, copien la url de nuestras imagenes. lo que haremos es lo siguiente.

Creamos una imagen similar a esta, o cualquier que hagamos con un nombre de archivo sencillo, por ej. no_hotlinking.jpg, la subimos a la raiz del servidor

rsz_no_al_hotlinking

Abrimos el archivo .htaccess y agregamos este codigo:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tudominio.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?otrodominioautorizado.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ http://tudominio.com/no_hotlinking.jpg [NC,R,L]

en la linea de tu dominio y otrodominioautorizado puedes repetirlo tantas veces necesites autorizar a otras paginas mostrar tu contenido, o tambien puedes usar esta herramienta para generar uno personalizado en pocos segundos.

Bloquear acceso al archivo htaccess

Con esta directiva bloquearemos el acceso desde el exterior a este archivo, en el mismo archivo agregaremos las siguientes lineas de codigo

De la misma forma puedes bloquear el acceso a cualquier otro archivo:

Nota: esto afectaría a cualquier archivo con el nombre “archivosecreto.txt” que se encuentre en el servidor.

Además, usando la directiva FilesMatch, puedes proteger archivos con determinadas extensiones:

Plugins Recomendados: