diciembre 4, 2020
9min de lectura
Gustavo B.
WordPress es uno de los sistemas de administración de contenido (CMS) más populares del mundo. En él se ejecutan el 18.9% de todos los sitios web de Internet y se ha instalado más de 76,5 millones de veces. Desafortunadamente, la popularidad también tiene sus desventajas. Según un informe de hackeo de Securi, una compañía especializada en seguridad de sitios web, WordPress es el CMS más hackeado del mundo. ¡Pero no hay que entrar en pánico! Es bastante fácil mejorar la seguridad WordPress si aplicas las mejores prácticas e implementas algunos trucos proporcionados en este tutorial de WordPress.
Antes de comenzar con esta guía, necesitarás lo siguiente:
Este el primer y más importante consejo. Si quieres tener un sitio web limpio y libre de malware, es imprescindible mantener WordPress actualizado. Aunque puede parecer un consejo elemental, solo el 22% de todas las instalaciones de WordPress ejecutan la última versión.
WordPress implementó la característica de actualización automática en la versión 3.7, sin embargo, solo funciona para actualizaciones de seguridad menores. Por lo tanto, las actualizaciones principales deben hacerse manualmente.
¿Estás usando admin como tu nombre de usuario de administrador de WordPress? Si tu respuesta es afirmativa, estás facilitando las cosas para que los hackers intenten irrumpir en tu escritorio. Se recomienda bastante cambiar el nombre de usuario de admin a otra cosa o crea una nueva cuenta de administrador con un nombre de usuario diferente y elimina la anterior. Sigue estos pasos si prefieres la segunda manera:
Una buena contraseña juega un papel importante en lo que respecta a la seguridad WordPress. Es mucho más difícil realizar un ataque de fuerza bruta a una contraseña que contiene números, letras mayúsculas y minúsculas y caracteres especiales. Herramientas como LastPass y 1Password pueden ayudarte a crear y administrar contraseñas complejas. Además, si alguna vez necesitas iniciar sesión en el panel de control de WordPress mientras estás conectado a una red no segura (por ejemplo, en cafeterías, bibliotecas públicas, etc.), no olvides usar una VPN segura que proteja tu información de registro.
La verificación en dos pasos le agrega un nivel adicional de seguridad a tu página de inicio de sesión. Como su nombre lo sugiere, agrega otro paso que tienes que completar para iniciar sesión. Lo más probable es que ya lo estés utilizando para acceder al correo electrónico, al banco en línea o a cualquier otra cuenta que contenga información confidencial. ¿Por qué no usarlo en WordPress?
Aunque puede parecer complicado, es muy fácil habilitar la verificación de 2 pasos en el blog de WordPress. Todo lo que necesitas es instalar la aplicación de autenticación de 2 factores y configurar tu WordPress.
Los informes de errores de PHP pueden ser útiles si estás desarrollando tu sitio web y quieres asegurarte de que todo funcione correctamente. Sin embargo, mostrarle los errores a todo el mundo es una grave falla de seguridad en WordPress.
Debes arreglar esto lo antes posible. No tengas miedo, no tienes que ser un programador para deshabilitar los informes de errores de PHP para WordPress. Muchos proveedores de hosting tienen la opción de desactivar los informes de errores dentro del panel de control. Si no hay ninguno, simplemente agrega las siguientes líneas a tu archivo wp-config.php. Puedes usar el cliente FTP o el Administrador de archivos para editar el archivo wp-config.php.
error_reporting(0);
@ini_set(‘display_errors’, 0);
Eso es todo. El informe de errores ahora está desactivado.
Recuerda: «El único queso gratis está en la ratonera». Podemos decir lo mismo sobre los temas y plugins anulados de WordPress.
Hay miles de plugins y temas anulados rondando en Internet. Los usuarios pueden descargarlos de varios sitios Warez o torrents de forma gratuita. Lo que no saben es que la mayoría de ellos están infectados con malware o con enlaces de SEO black hat.
Deja de usar plugins y temas anulados. No solo no es ético sino extremadamente dañino para la seguridad de WordPress. Terminarás pagando más por un desarrollador para que limpie tu sitio web.
Los hackers a menudo usan “vacíos” o loopholes en temas o plugins para infectar WordPress con malware. Por lo tanto, es crucial escanear tu blog con frecuencia. Hay muchos plugins bien codificados para este propósito pero WordFence se destaca entre la multitud. Ofrece opciones de escaneo manuales y automáticas junto con numerosas configuraciones diferentes. Incluso puede restaurar archivos modificados/infectados con solo un par de clics. Es gratis y de código abierto. Estos factores deberían ser suficientes para que instales este plugin ahora mismo.
Otros plugins de seguridad populares de WordPress:
No dudes en probarlos todos. Puedes encontrar una guía completa sobre cómo instalar plugins de WordPress aquí.
Puede sonar como un consejo extraño, pero las estadísticas muestran que más del 40% de los sitios web de WordPress fueron hackeados debido a vacíos de seguridad en las cuentas de hosting. Este número por sí mismo debería obligarte a reconsiderar tu elección de hosting actual y migrar WordPress a un hosting más seguro. Algunos factores clave a tener en cuenta al buscar un nuevo hosting:
Incluso los sitios web más grandes son hackeados todos los días a pesar del hecho de que sus propietarios gastan miles para reforzar la seguridad de WordPress.
Aún si estás siguiendo las mejores prácticas y cumples con otros consejos de este artículo, sigue siendo crucial hacer una copia de seguridad de tu sitio web de WordPress con regularidad.
Hay bastantes formas de crear copias de seguridad. Por ejemplo, puedes descargar manualmente archivos de WordPress y exportar la base de datos o usar la herramienta de copias de seguridad de tu proveedor de hosting. Otra forma es usar plugins de WordPress. Los plugins de copia de seguridad de WordPress más populares son:
Incluso puedes automatizar el proceso de copias de seguridad y almacenar copias de seguridad de WordPress en Dropbox.
Como sabrás, WordPress tiene un editor de archivos incorporado que permite editar archivos PHP. Si bien esta característica es muy útil, también puede hacer mucho daño. Si el atacante obtiene acceso a tu panel de administrador, lo primero que buscará es el Editor de archivos. Algunos usuarios de WordPress prefieren deshabilitar completamente esta función. Se puede desactivar editando el archivo wp-config.php e incluyendo la siguiente línea de código:
define( 'DISALLOW_FILE_EDIT', true );
Eso es todo lo que tienes que hacer para deshabilitar la edición de archivos en WordPress.
IMPORTANTE: En caso de que quieras volver a habilitar esta función, use el cliente FTP o el Administrador de archivos de tu proveedor de hosting y elimina este código del archivo wp-config.php.
Haz una limpieza de tu sitio de WordPress y elimina todos los plugins y temas no utilizados. Los hackers suelen buscar temas y plugins deshabilitados y desactualizados (incluso los plugins oficiales de WordPress) y utilizarlos para obtener acceso a tu escritorio o cargar archivos maliciosos en tu servidor. Al eliminar plugins y temas que dejaste de utilizar (y probablemente olvidaste actualizar) hace mucho tiempo, reduces el riesgo y haces que el sitio de WordPress sea un poco más seguro.
Se requiere un archivo .htaccess para que los enlaces de WordPress funcionen correctamente. Sin las reglas correctas en el archivo .htaccess, obtendrías muchos errores 404.
No muchos usuarios saben que .htaccess se puede usar para mejorar la seguridad de WordPress. Por ejemplo, con .htaccess puedes bloquear el acceso o deshabilitar la ejecución de PHP en carpetas específicas. Los ejemplos a continuación muestran cómo se puede usar .htaccess para reforzar la seguridad de WordPress.
IMPORTANTE Antes de realizar cualquier cambio, se recomienda realizar una copia de seguridad del archivo .htaccess anterior. Puedes usar el cliente FTP o el Administrador de archivos para esto.
El siguiente código permitirá el acceso al área de administrador de WordPress solo desde direcciones IP específicas.
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.xxx
allow from xx.xx.xx.xxx
</LIMIT>
Ten en cuenta que debes cambiar XX.XX.XX.XXX
por tu dirección IP. Puedes usar este sitio web para verificar tu IP actual. Si usas más de una conexión para administrar tu sitio de WordPress, asegúrate de incluir también todas las otras direcciones IP (no dudes en agregar todas las líneas de permiso que necesites). No se recomienda utilizar este código si tienes una dirección IP dinámica.
Deshabilitar la ejecución de PHP en carpetas específicas
A los atacantes les gusta cargar scripts de puerta trasera a la carpeta de carga de WordPress. De manera predeterminada, esta carpeta se usa para cargar solo archivos multimedia. Por lo tanto, no debería contener ningún archivo PHP. Puedes desactivar fácilmente la ejecución de PHP creando un nuevo archivo .htaccess en /wp-content/uploads/ con estas reglas:
<Files *.php>
deny from all
</Files>
Proteger el archivo wp-config.php
El archivo wp-config.php contiene la configuración del núcleo de WordPress y los detalles de la base de datos MySQL. Por lo tanto, es el archivo de WordPress más importante. Es por eso que es el objetivo principal de los hackers de WordPress. Sin embargo, puedes proteger fácilmente este archivo utilizando las reglas .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
La base de datos de WordPress guarda y almacena toda la información crucial requerida para que tu sitio funcione. Como resultado, se convierte en un objetivo atractivo para hackers y spammers que ejecutan código automatizado para realizar inyecciones de SQL. Al instalar WordPress, la mayoría de las personas ni siquiera se molestan en cambiar el prefijo de base de datos predeterminado wp_. Según WordFence “1 de cada 5 casos de hackeo de WordPress ocurren debido a las inyecciones de SQL”. Como **wp** es la configuración predeterminada, los hackers intentarán atacar ese valor primero. En este paso, ofreceremos una breve descripción de cómo puedes proteger tu sitio de WordPress contra dichos ataques.
¡IMPORTANTE! La seguridad es lo primero. Asegúrate de hacer una copia de seguridad de tu base de datos MySQL de WordPress antes de continuar.
Usando el cliente FTP o el Administrador de archivos, encuentra tu wp-config.php y busca el valor $table_prefix
.
Puede agregar números, letras o guiones bajos. Después de eso, guarda los cambios y continúa con el próximo paso. En este tutorial, usaremos wp_1secure1_
como el nuevo prefijo de tabla.
Mientras estés en tu archivo wp-config.php, busca también el nombre de tu base de datos, para que sepas qué base de datos necesitas editar. Busca la sección define('DB_NAME'
Ahora, necesitarás actualizar todas las entradas en tu base de datos de WordPress. Esto se puede hacer mediante phpMyAdmin.
Encuentra la base de datos que identificaste en la parte 1 y acceda a ella.
Una instalación predeterminada de WordPress tiene 12 tablas y cada una tiene que ser actualizada. Sin embargo, se puede hacer más rápido utilizando la sección SQL de phpMyadmin.
Cambiar cada tabla manualmente tomaría una cantidad de tiempo excesiva, por lo tanto, utilizaremos consultas SQL para acelerar las cosas. Usa la siguiente sintaxis para actualizar todas las tablas en tu base de datos.
RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
RENAME table `wp_comments` TO `wp_1secure1_comments`;
RENAME table `wp_links` TO `wp_1secure1_links`;
RENAME table `wp_options` TO `wp_1secure1_options`;
RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
RENAME table `wp_posts` TO `wp_1secure1_posts`;
RENAME table `wp_terms` TO `wp_1secure1_terms`;
RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
RENAME table `wp_users` TO `wp_1secure1_users`;
Algunos temas o plugins de WordPress pueden crear tablas adicionales en la base de datos. En caso de que tengas más de 12 tablas en tu base de datos MySQL, agrega el resto de ellas manualmente a la lista de consultas SQL y ejecútalas.
Dependiendo de la cantidad de plugins que tengas instalados, algunos valores en tu base de datos deberán actualizarse manualmente. Eso se puede hacer ejecutando consultas SQL separadas en las tablas options y usermeta.
Para la tabla de options, deberías usar:
SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'
Para la tabla usermeta deberías usar:
SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'
Cuando obtengas los resultados de la consulta SQL, simplemente actualiza todos los valores de wp_ con tu prefijo recién configurado y listo. En la tabla usermeta necesitarás editar el campo meta_key, mientras que en options, el valor de option_name deberá ser cambiado.
Si planeas instalar nuevos sitios de WordPress, no será necesario realizar este proceso nuevamente. Simplemente podrás cambiar tu prefijo de tabla de WordPress durante la instalación:
¡Felicitaciones! Has mejorado exitosamente la protección de la base de datos de WordPress contra las inyecciones de SQL.
Aunque WordPress es el CMS más hackeado del mundo, no es difícil mejorar su seguridad. En este tutorial proporcionamos 10 consejos que deberías seguir para mejorar la seguridad en WordPress.
Lectura adicional:
enero 01 2020
Amigos, buenos días. Acabo de instalar WordPress en midominio.com/sitio. Lo hice así porque alguna vez había implementado esa redirección supuestamente por razones de seguridad. Si se mejora la seguridad del sitio? Es mejor instalar WordPress en alguna carpeta que en la raíz del sitio? Habiendo hecho esa instalación y al crear en CPanel la redirección de midominio.com a midominio.com/sitio, la página queda fuera de operación. Cómo puedo implementar entonces la redirección para que el sitio quede operativo? O será mejor reubicar la instalación de WordPress a la raiz y no usar ninguna redirección? Cordial saludo.
Deja una respuesta