¿Cómo mejorar la seguridad en un sitio web de WordPress?

Actualizado el 14 de noviembre, 2016. Por BlueHosting.

La seguridad es un factor esencial para mantener el buen funcionamiento de su sitio web. La aparición de los sistemas de gestión de contenidos o CMS y las aplicaciones ha llevado a que la seguridad sea un reto cada vez más complejo de afrontar. Este artículo provee una lista de sugerencias e instrucciones que le ayudan a mejorar el nivel seguridad de su instalación de WordPress.

¿Por qué debo mejorar la seguridad en mi WordPress?

Hay varias razones:

  • Los CMS usan archivos típicos para las contraseñas y configuraciones, que son predecibles y están ubicados en los mismos directorios en todas las instalaciones predeterminadas de WordPress (wp-config.php, directorio wp-config.php, etc) así que son muy fáciles de ubicar y modificar una vez que se obtiene un acceso parcial a los servidores.
  • El escritorio de administración (wp-admin) se ejecuta bajo el mismo dominio y usa la misma base de código y permisos que el resto de la aplicación.
  • Los usuarios administradores pueden instalar temas y plugins que a su vez pueden modificar cualquier archivo o tabla en la base de datos (esto se relaciona con temas o plugins corruptos, no oficiales, no actualizados o modificados manualmente).

Hacer respaldos regularmente

Hacer respaldos regulares de su sitio de WordPress es la primera y más importante medida que debe aplicar. Antes de llevar a cabo cualquier cambio, asegúrese de respaldar toda su instalación de WordPress y sus bases de datos.

Para más información puede visitar alguno nuestros tutoriales relacionados:

También recomendamos crear un respaldo regular de toda su cuenta de cPanel usando las herramientas del Restore Manager para guardar una copia de seguridad general de su cuenta de cPanel.

Actualizar los temas, plugins y la instalación de WordPress a las últimas versiones

La última versión de WordPress siempre está disponible en la página oficial de WordPress. El software oficial no está disponible desde ningún otro sitio web o recurso, NUNCA actualice Wordpress desde los programas de un tercero. Puede actualizar su instalación de Wordpress directamente desde su escritorio de Wordpress o incluso desde sus instalaciones activas en Softaculous. Para más información: ¿Cómo actualizar su instalación de WordPress? y ¿Cómo configurar las actualizaciones automáticas en Wordpress?.

Anexo 1 Actualizar Wordpress

Asegúrese de que su blog tenga las últimas versiones de instalación y complementos a la fecha. El equipo de WordPress trabaja para crear parches que arreglan brechas de seguridad y desarrollan actualizaciones constantemente. Es por esto que es tan importante actualizar WordPress.

También se recomienda ampliamente actualizar sus plugins y temas a las últimas versiones disponibles, ya que un pequeño bug en alguno de ellos puede afectar su sitio web. Puede actualizar los plugins y temas a través del escritorio de administración de WordPress seleccionando Plugins o Temas en el menú izquierdo y haciendo clic en Actualizar al lado del plugin o tema en cuestión:

Anexo 2 Plugins

Anexo 3 Temas

Nota: tal como mencionamos en la primera sección de esta guía, es recomendable hacer un respaldo de WordPress antes de hacer cualquier cambio en su instalación.

Usar fuentes confiables

Muchos temas "gratuitos" de Wordpress incluyen codificación Base64, la cual está asociada con código malicioso. Por lo tanto, estos temas o plugins pueden cargar su cuenta con malware fácilmente. Esta es una de las formas más simples en que los hackers obtienen acceso a los archivos en su sitio. No confíe ni instale este tipo de complementos.

Recomendamos usar solamente el contenido oficial de recursos como http://wordpress.org/ ya que es la forma más segura de obtener temas y plugins.

Usar un nombre de usuario y contraseña seguros

La instalación por defecto de WordPress determina el nombre de usuario como admin, lo que hace que el inicio de sesión sea muy predecible para los atacantes. Debe cambiar el nombre de usuario a uno más personalizado y debe incluir una contraseña con la mayor cantidad de combinación entre mayúsculas, minúsculas, números y símbolos.

Si utiliza Softaculous, el nombre de usuario y contraseña se especifican aquí (Editar detalles de instalación desde su instalación activa de WordPress):

Anexo 4 Cambiar datos administrador

Además, se recomienda no utilizar contraseñas o direcciones de correo similares a sus cuentas para otros recursos web.

También puede cambiar el nombre de usuario y contraseña a través de las bases de datos asociadas con su instalación de Wordpress.

Cambiar el prefijo de la base de datos, el nombre de usuario y contraseña

Cambiar el prefijo de la base de datos

Es muy recomendable cambiar el prefijo de la base de datos si está establecida con el valor predeterminado de WordPress (wp_). Los ataques de inyección SQL son más fáciles de aplicar con el prefijo predeterminado porque es más fácil de adivinar. Recomendamos cambiar el prefijo de la base de datos añadiendo letras o números adicionales a wp_.

Nota: cree un respaldo de sus bases de datos antes de aplicar cualquier cambio.

Si usted instala WordPress desde Softaculous puede establecer un prefijo personalizado en la pantalla de instalación o de edición de su instalación activa:

Anexo 5 nombre de la base de datos

Si instaló WordPress usando otro método, puede cambiar el prefijo de la base de datos de dos maneras: manualmente o utilizando un plugin.

Para un cambio manual del prefijo de la base de datos inicie sesión en su cuenta de cPanel y seleccione la opción phpMyAdmin desde la sección "BASES DE DATOS". Haga clic en la base de datos deseada en la lista a la izquierda, y luego haga clic en la opción SQL en la parte superior.

Aquí tiene que ejecutar la siguiente secuencia de comandos para su base de datos de WordPress:

RENAME table `wp_commentmeta` TO `wpXYZ_commentmeta`; 
RENAME table `wp_comments` TO `wpXYZ_comments`; 
RENAME table `wp_links` TO `wpXYZ_links`; 
RENAME table `wp_options` TO `wpXYZ_options`; 
RENAME table `wp_postmeta` TO `wpXYZ_postmeta`; 
RENAME table `wp_posts` TO `wpXYZ_posts`; 
RENAME table `wp_terms` TO `wpXYZ_terms`; 
RENAME table `wp_term_relationships` TO `wpXYZ_term_relationships`; 
RENAME table `wp_term_taxonomy` TO `wpXYZ_term_taxonomy`; 
RENAME table `wp_usermeta` TO `wpXYZ_usermeta`; 
RENAME table `wp_users` TO `wpXYZ_users`;

Recuerde remplazar el prefijo wpXYZ_ por el nuevo prefijo determinado para su base de datos. Así cambiará el prefijo por defecto (wp_). Luego haga clic en Go:

Anexo 6 cambiar prefijo phpMyAdmin

Una vez completado el procedimiento, podrá observar que el cambio ha sido aplicado a sus bases de datos de WordPress.

Después de eso, necesita explorar la tabla options en busca de cualquier otro campo que aún esté utilizando el prefijo wp_ para poder remplazarlo. Copie el siguiente comando de la misma forma:

SELECT * FROM `newprefix_options` WHERE `option_name` LIKE '%wp_%'

Luego haga clic en Go y probablemente obtenga un resultado indicando que aún uno o más campos utilizan el antiguo prefijo. Aquí tiene que ir uno a uno haciendo los cambios en las líneas y remplazando el prefijo antiguo con el nuevo. Una vez completado, tenemos que buscar en usermeta todos los campos que aún sigan usando wp_ como prefijo, ingrese lo siguiente en la opción SQL de phpMyAdmin:

SELECT * FROM `newprefix_usermeta` WHERE `meta_key` LIKE '%wp_%'

Haga clic en Go para observar los resultados. El número de entradas coincidentes dependerá según el número de plugins que esté utilizando. Aquí también debe cambiar todo lo que comience con el antiguo prefijo (wp_).

Una vez que lo haya hecho, asegúrese de actualizar su archivo wp-config.php con el nuevo prefijo de la base de datos (puede hacerlo desde el Administrador de archivos de cPanel):

Anexo 7 cambiar prefijo en wp-config

Finalmente, puede utilizar plugins especiales que obtienen el mismo resultado, por ejemplo Change DB prefix y Change Table Prefix.

Cambiar el nombre de usuario y contraseña

Para cambiar el nombre de usuario y/o contraseña de la base de datos, inicie sesión en su cuenta de cPanel y haga clic en la opción Bases de datos MySQL desde la sección "BASES DE DATOS":

Anexo 8 Bases de datos MySQL

Bajo "usuarios actuales", podrá ver una lista de todos los usuarios de bases de datos creados en su cuenta. Aquí puede establecer una nueva contraseña o renombrar cualquier usuario de base de datos seleccionando la opción correspondiente:

Anexo 9 usuarios actuales

Si selecciona la opción Cambiar contraseña se abrirá una nueva ventana. Ingrese allí la nueva contraseña segura dos veces y haga clic en Cambiar contraseña:

Anexo 10 Cambiar contraseña

Para cambiar el nombre de usuario de una base de datos haga clic en Cambiar el nombre. En la nueva ventana debe especificar el nuevo nombre de usuario que desea tener (este estará precedido por sunombredecPanel_). Haga clic en Proceder para guardar los cambios:

Anexo 11 cambiar nombre de usuario

Una vez que haya terminado con los cambios en el nombre de usuario y contraseña de la base de datos, debe agregar los detalles correspondientes en el archivo wp-config.php:

Anexo 12 actualizar archivo wp-config

Establecer protección con contraseña en archivos y directorios importantes

Para prevenir que el sitio de WordPress sea hackeado, recomendamos configurar una protección por contraseña para el sistema de archivos y directorios.

Para crear la protección por contraseña siga los siguientes pasos:

  1. Inicie sesión en cPanel y haga clic en Privacidad del directorio bajo la sección "ARCHIVOS":
    Anexo 13 Privacidad de directorios
  2. Seleccione el directorio que desea proteger y haga clic sobre este:
    Anexo 14 Seleccionar directorio
  3. Marque la casilla "La contraseña protege este directorio", puede colocar otro nombre al directorio protegido y finalmente establecer un nombre de usuario y contraseña para proteger el directorio. Para completar el proceso haga clic en el botón Salvar:
    Anexo 15 Salvar

Adicionalmente al procedimiento aquí descrito, también puede configurar el archivo .htaccess para proteger sus archivos y directorios.

Nota: es muy importante proteger el archivo wp-config.php y la carpeta wp-admin debido a que son más susceptibles a ataques de hackers.

Usar FTP seguro (SFTP) y SSH

Cargar y descargar archivos a través de FTP es una forma rápida de levantar su sitio web o añadir nuevos archivos a su cuenta. Sin embargo, FTP no es protocolo seguro y la mejor práctica es usar SFTP para estos fines, así sus contraseñas estarán encriptadas para ayudar a prevenir que los hackers las obtengan. Puede obtener más información visitando:

SCP y SSH son otros dos métodos seguros de añadir o transferir archivos en su sitio.

Si usted no quiere usar FTP (o usar los detalles de cPanel para la conexión FTP), una buena idea es borrar todas las cuentas FTP que no esté utilizando para prevenir que sean accedidas sin su consentimiento. Esto es una excelente forma de ayudar a mantener la información de su sitio más segura.

Ocultar la versión de WordPress

Otra buena idea es eliminar el generador de meta para WordPress. Esta etiqueta meta muestra la versión de su sitio de Wordpress. Puede abrir el sitio web y verificar el código fuente presionando CTRL + U en Windows o las teclas Option + Command + U en Mac. Si la versión de WordPress es visible para los hackers, es más fácil que se dirijan a las vulnerabilidades propias de la versión instalada.

Para ocultar su versión de WordPress, navegue al tema actual en el directorio /wp-content/themes/nombredesutema/ e inserte el código a continuación en el archivo function.php:

/* Hide WP version strings from scripts and styles 
* @return {string} $src 
* @filter script_loader_src 
* @filter style_loader_src 
*/ 
function fjarrett_remove_wp_version_strings( $src ) { 
            global $wp_version; 
            parse_str(parse_url($src, PHP_URL_QUERY), $query); 
            if ( !empty($query['ver']) && $query['ver'] === $wp_version ) { 
            $src = remove_query_arg('ver', $src); 
            } 
            return $src; 
} 
add_filter( 'script_loader_src', 'fjarrett_remove_wp_version_strings' ); 
add_filter( 'style_loader_src', 'fjarrett_remove_wp_version_strings' ); 

/* Hide WP version strings from generator meta tag */ 
function wpmudev_remove_version() { 
return ''; 
} 
add_filter('the_generator', 'wpmudev_remove_version');

Limitar el número de conexiones fallidas

Se recomienda limitar el número de intentos de inicio de sesión en su escritorio de WordPress con la ayuda del plugin Login LockDown. Este registra las direcciones IP de cada inicio de sesión fallido en un cierto período de tiempo. Si se detectan más de un número específico de intentos en un período de tiempo, bajo el mismo rango IP, entonces la función de inicio de sesión es deshabilitada para todas las solicitudes en ese rango. Esto permite prevenir los ataques de fuerza bruta para el descubrimiento de contraseñas.

Plugins para la seguridad en WordPress

Uno de los pasos más importantes para hacer que su sitio de WordPress sea seguro es usar plugins de seguridad:

Wordfence Security:

Wordfence Security es un plugin de seguridad de WordPress gratuito que permite escanear su sitio web es busca de código malicioso, backdoors o shells que los hackers han instalado, además muestra estadísticas de análisis del sitio y tráfico en tiempo real. También se puede configurar un escaneo automático, entre otras opciones.

All In One WordPress Security:

All In One WordPress Security es un plugin amigable al usuario que pone la seguridad de su sitio de WordPress en otro nivel. Provee seguridad de cuentas de usuario y contraseñas, bases de datos y seguridad de sistemas de archivos, prevención contra ataques de fuerza bruta, escaneo del sitio web y más.

Acunetix WP Security:

Acunetix WP Security comprueba su sitio de WordPress en busca de vulnerabilidades de seguridad y sugiere acciones correctivas como contraseñas, permisos de archivos, seguridad de bases de datos, ocultar versión de WordPress y protección de administrador.

Cuenta y seguridad externa

A continuación algunos consejos y recomendaciones generales que le ayudarán a aumentar la seguridad externa y de su cuenta:

  • Mantenga su entorno local actualizado y libre de virus.
  • Proteja su cuenta de hosting (cuenta de cPanel). Revise la documentación de cPanel para más información al respecto.
  • Use contraseñas seguras y conexiones SFTP para la carga y descarga de archivos.
  • Cambiar la contraseña de cPanel regularmente. Intente usar contraseñas seguras (con combinaciones de mayúsculas, minúsculas, números y símbolos). También recomendamos cambiar las contraseñas de las cuentas de correo electrónico.
  • No almacene las contraseñas en lugares donde pueden ser obtenidas fácilmente (por ejemplo, un archivo llamado contraseñas.txt en el escritorio de su computador no es muy seguro que digamos, ¿no?).
  • Actualice todos los scripts de terceros a sus últimas versiones.

Los consejos provistos arriba no garantizan una seguridad absoluta en su sitio web de WordPress, pero proveen una base muy importante que disminuye las posibilidades de ser víctimas de hackers.

Recursos adicionales

Puede consultar los siguientes recursos en busca de información que complemente nuestra guía. Recuerde que no podemos dar fe de la actualidad o precisión de contenidos externos.

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...