Seguridad en WordPress: guía completa!

WordPress, hoy en día, es uno de los CMS más utilizados para crear sitios web, blogs y tiendas online entre otros. Además, que al ser un software de código abierto (disponible para cualquier usuario), tiende a ser muy vulnerable a ataques y hackeos.

Por esta razón es prácticamente "obligatorio" contar con un sistema de seguridad en WordPress muy reforzado para que se mantenga siempre funcionando y seguro.

Índice del contenido
    Add a header to begin generating the table of contents

    1. Recomendaciones generales para proteger WordPress

    Muchos usuarios suelen instalar un plugin de seguridad en su sitio web y con eso creen que es suficiente. Este plugin puede ayudar pero es recomendable aplicar algunas técnicas adicionales para "blindar al 100%" nuestro sitio web.

    1.1 No utilices el prefijo wp_ en tu base de datos

    Cuando instalas WordPress por primera vez, es necesario que indiques los datos de configuración de tu base de datos.

    La mayoría de estos datos los puedes crear desde el panel de control de tu servidor pero hay un dato adicional que puedes elegir cambiar: el Prefijo de tabla.

    Por defecto WordPress asigna como prefijo "wp_" pero es recomendable cambiarlo durante el proceso de instalación.

    En la lección, instalar WordPress paso a paso, podrás ver el proceso de instalación desde cero y como asignar estos datos para configurar tu base de datos.

    No uses wp_ como prefijo de tabla de la base de datos
    No uses wp_ como prefijo de tabla de la base de datos

    1.2 No uses admin como usuario para acceder a WordPress

    Cuando instalas WordPress por primera vez, debes indicar un nombre de usuario y contraseña con los que podrás ingresar luego al panel de administración de WordPress.

    Irónicamente, suelo recomendar que utilices como nombre de usuario "admin" y contraseña "admin" al momento de la instalación. Pero esta recomendación no es una tontería.

    En la primera instalación de WordPress, el usuario admin se registra en la base de datos con ID=1 y esto es algo que los hackers saben.

    Una vez hayas instalado WordPress, desde el panel de administración, es recomendable crear un usuario "real" y eliminar el usuario admin de manera que al usuario real se asigne un ID diferente de 1.

    En la lección, qué hacer después de instalar WordPress, te indico una serie de pasos para modificar el usuario "falso" creado en la instalación de WordPress.

    No uses admin como usuario para acceder a WordPress
    No uses admin como usuario para acceder a WordPress

    1.3 Utiliza una contraseña fuerte para iniciar sesión

    Cuando crees un nuevo usuario en WordPress, es muy recomendable utilizar una contraseña "fuerte" que sea prácticamente imposible de hackear.

    WordPress, en sus últimas versiones, incluye un generador de contraseñas seguras que te recomienda utilizar. Una vez creada (o modificada) basta que la copies en un bloc de notas (por ejemplo) para tenerla siempre a mano.

    Como actualmente, la mayoría de navegadores ofrecen la posibilidad de recordar contraseñas en tu ordenador (computadora), cuando inicies sesión con la nueva contraseña, puedes guardar la contraseña en el navegador (Chrome, Firefox o Safari) para que la recuerde en el próximo inicio de sesión (la que copiaste en el bloc de notas).

    Igualmente, en algunos navegadores como Chrome y Firefox, puedes sincronizar los usuarios y contraseñas en la nube de manera que te puedas conectar a WordPress desde cualquier lugar y no tengas que memorizar una contraseña complicada.

    Usa una contraseña fuerte cuando crees un usuario
    Usa una contraseña fuerte cuando crees un usuario

    1.4 Manten WordPress actualizado en todo momento

    El equipo que colabora con el desarrollo de WordPress, trabaja constantemente para detectar nuevas vulnerabilidades en el núcleo. Cada vez que detectan alguna, te ofrecen una actualización la cual deberías realizar inmediatamente una vez se encuentre disponible.

    Si WordPress no se encuentra actualizado, es posible que exista una brecha de seguridad debido a que, la versión que tienes instalada, ya es vulnerable a ataques.

    La ventaja de todo esto es que WordPress siempre te va a ofrecer la última versión para que la actualices desde el panel de administración por lo que no tendrás excusa para no hacerlo.

    Esto mismo se aplica para los plugins y temas provenientes del repositorio de WordPress.

    Si estás utilizando plugins y temas PREMIUM, lo más seguro es que el desarrollador de estos plugins y temas ofrezca una actualización compatible con la última versión de WordPress.

    Es recomendable que también realices esta actualización ya que normalmente los plugins son los elementos más vulnerables a ataques de todo tu sitio web.

    En la lección, actualizaciones en WordPress, te indico una serie de pasos para que aprendas a actualizar WordPress de forma segura.

    1.5 No utilices plugins o temas obsoletos

    Cuando vayas a instalar un plugin, asegúrate que se encuentre disponible la última versión y que sea compatible con la actual versión de WordPress. Los plugins gratuitos del repositorio de WordPress suelen indicar estos datos.

    No te fíes de plugins ni temas que lleven mucho tiempo sin ofrecer actualizaciones ya que seguramente se han quedado obsoletos y presentarán alguna vulnerabilidad en la seguridad de WordPress.

    Si se trata de plugins o temas PREMIUM, asegúrate que estos tienen un historial de actualizaciones (normalmente llamado Changelog) y que las continúan ofreciendo.

    No sería agradable comprar un plugin o un tema PREMIUM y, que al cabo de un tiempo, no ofrecieran más actualizaciones.

    No instales plugins desactualizados e incompatibles con tu versión de WordPress
    No instales plugins desactualizados e incompatibles con tu versión de WordPress

    1.6 Borra los plugins y temas que no utilices

    Esto es algo que la mayoría de administradores de WordPress no hace, ¡lo que no sirve a la basura!

    Si has estado realizando pruebas en WordPress, instalando temas y plugins para conocerlos mejor, llegará un momento en el que sólo te quedarás con los necesarios. El resto de plugins y temas que no utilices ¡por favor, bórralos!

    Estos no solo ocuparán un valioso espacio en tu servidor si no que es posible que no prestes atención a las actualizaciones y, al no encontrase activos, provoquen una brecha de seguridad en WordPress.

    1.7 Descarga plugins y temas de sitios seguros

    Todos los plugins y temas que se encuentran en el repositorio de WordPress, han sido testeados y son totalmente seguros.

    Muchos de estos plugins y temas suelen ofrecer una versión PRO (de pago con más funciones) que es recomendable contratarlos y descargarlos desde el propia sitio web del autor.

    En el caso de plugins y temas PREMIUM existen plataformas como Themeforest (temas) y Codecanyon (plugins) donde puedes comprarlos con total seguridad.

    Evita descargar plugins y temas de otros sitios web que se ofrecen como "gratis" ya que suelen venir con códigos espías como virus y malware que, no solo infectaran tu instalación de WordPress, si no que también infectarán tu ordenador (computadora).

    Normalmente estos sitios tienen el indicativo Nulled en el título.

    No descargues temas ni plugins desde páginas sospechosas (Nulled)
    No descargues temas ni plugins desde páginas sospechosas (Nulled)

    1.8 Realiza copias de seguridad de tu sitio web

    Es recomendable realizar copias de seguridad periódicas de tus archivos y base de datos ya que, si en algún momento se infecta tu instalación, puedas restaurarla con una versión limpia y puedas realizar las actualizaciones respectivas.

    En la lección, copias de seguridad en WordPress, te indico algunos métodos para realizar esta tarea con total seguridad.

    1.9 Crea una cuenta en Google Search Console

    A Google no le gusta los sitios web con software malicioso. En sus directrices para webmaster especifíca que se debe evitar el uso de software malicioso en sitios web.

    Por esta razón es importante crear una cuenta en Google Search Console (antiguamente Herramientas para Webmasters de Google) ya que esta herramienta te ofrece una seguridad adicional para que Google te mantenga informado sobre:

    • Actualizaciones de WordPress.
    • Inyecciones de código.
    • Avisos de problemas de usabilidad.
    • Problemas de velocidad.
    Instala Google Search Console para mantener tu página segura
    Instala Google Search Console para mantener tu página segura

    En la lección, crear una cuenta en Google Search Console, veremos los pasos para crear y configurar una cuenta en Google Search Console.

    1.10 Protégete del SPAM

    Cuando se tiene un sitio web con formularios de contacto o de comentarios, es muy probable de que recibas SPAM. Estos son fáciles de detectar ya que están compuestos por muchos enlaces y palabras claves generadas por robots.

    Las siguientes acciones te ayudarán a proteger tu sistema de comentarios:

    • Instala y configura el plugin Akismet. Este plugin viene por defecto integrado en el paquete de instalación de wordpress.org. Es muy sencillo de configurar y te ayuda a filtrar el SPAM proveniente de los formularios de comentarios de las entradas del blog.
    • Configura correctamente las opciones en el apartado Comentarios desde el panel de administración de WordPress.

    En la lección, comentarios en WordPress, veremos como configurar correctamente los comentarios e integrar Akismet en WordPress.

    Para proteger tus formularios de contacto:

    • Instala y configura el servicio reCAPTCHA. Este servicio se integra a la mayoría de plugins para formularios de contacto como Contact Form 7.

    En la lección, formularios en WordPress, veremos con más detalle como integrar este servicio a nuestros formularios de contacto en WordPress.

    1.11 Instala un plugin de seguridad

    La mayoría de medidas anteriormente descritas se realizan manualmente aunque existen otras medidas adicionales de seguridad en WordPress que se podrían aplicar.

    Instalando un plugin de seguridad como Wordfence, muchas de estas medidas adicionales estarán cubiertas con un solo clic.

    Anuncio publicitario

    2. Recomendaciones avanzadas para proteger WordPress

    Además de las técnicas anteriores, se pueden aplicar otras técnicas más avanzadas para mejorar la seguridad en WordPress añadiendo reglas adicionales en los archivos wp-config.php y .htaccess.

    Estos 2 archivos son los que controlan el funcionamiento de WordPress y es muy recomendable que sepas para que sirven y como editarlos.

    Para aplicar estas técnicas, es muy recomendable que sepas bien lo que haces. Cualquier error en una letra o símbolo puede hacer que tu sitio web deje de funcionar.

    Para que te familiarices con la edición de archivos, en la entrada, editar archivos en WordPress, te indico 3 sencillos métodos para que sepas como editar archivos en WordPress.

    2.1 Utiliza permisos de archivos y directorios seguros

    Asegúrate que los permisos para los directorios (carpetas) y archivos de la raiz de WordPress sean los siguientes:

    • Archivos: 644 (excepto wp-config.php que deberá tener 444).
    • Directorios: 755.

    Esto lo puedes realizar mediante FTP (con FileZilla) o desde cPanel.

    2.2 Protege el archivo .htaccess

    Como te he mencionado, el archivo .htaccess controla parte del funcionamiento de WordPress por lo que es muy recomendable y necesario protegerlo contra intentos de ataques.

    Para esto vale con añadir la siguiente regla al inicio del archivo .htaccess:

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

    2.3 Protege el archivo de configuración de WordPress: wp-config.php

    El archivo de configuración de WordPress, wp-config.php, contiene los datos de la base de datos de WordPress. Es muy importante que protejas este archivo ya que, si algún hacker se hace con estos datos, te quedarás sin WordPress.

    Para esto puedes realizar las siguientes acciones:

    • Cambiar los permisos del archivo por 444 para protegerlo contra escritura. Esto lo puedes realizar mediante FTP (con FileZilla) o desde cPanel.
    • Añadir la siguiente regla al inicio del archivo .htaccess:
    				
    					<files wp-config.php>
    order allow,deny
    deny from all
    </files>
    				
    			

    2.4 Evita la vulnerabilidad "pingback"

    La vulnerabilidad pingback está relacionada con el protocolo XML-RPC y es el que permite que WordPress se conecte vía remota con la aplicación WordPress para iOS o Android y se envíen pingbacks o trackbacks en los comentarios.

    El archivo relacionado es xml-rcp.php que se encuentra alojado en la raíz del directorio. Este archivo es muy vulnerable a ataques por lo que sería recomendable bloquear este archivo si no sueles utilizar WordPress mediante las anteriores aplicaciones.

    La mejor manera de hacerlo es añadir la siguiente regla al inicio del archivo .htaccess:

    				
    					<files xmlrpc.php>
    order allow,deny
    deny from all
    </files> 
    				
    			

    2.5 Protege la carpeta de archivos multimedia

    La carpeta o directorio uploads, que se encuentra en la ruta wp-content/uploads/, es donde se aloja todo el contenido multimedia, como imágenes y archivos, y es muy susceptible a ataques. Es recomendable proteger este directorio para que los hackers no tengan acceso.

    Para esto tendríamos que crear un archivo .htacces dentro de la carpeta uploads (tendría la ruta wp-content/uploads/.htaccess) y, en este archivo .htaccess, añadir la siguiente regla al inicio. Si ya existe el archivo, solo tenemos que editarlo.

    				
    					<files ~ ".*\..*">
    order allow,deny
    deny from all
    </files>
    <filesmatch "\.(jpg|jpeg|jpe|gif|png|bmp|tif|tiff|doc|pdf|rtf|xls|numbers|odt|pages|key|zip|rar)$">
    order allow,deny
    allow from all
    </filesmatch> 
    				
    			

    3. Instalación y configuración de WordFence en WordPress

    Wordfence es uno de los mejores plugins que existen de seguridad en WordPress. Es un plugin gratuito (también ofrece versión PRO con funciones extra) que se encuentra en el repositorio de plugins de WordPress.

    Este plugin instala un potente firewall en WordPress bloqueando IP's y limitando los intentos masivos de acceso al panel de administración de WordPress.

    A continuación te indico los pasos para instalar y configurar el plugin de seguridad en WordPress:

    3.1 Instala el plugin

    https://es.wordpress.org/plugins/wordfence/

    Para instalar el plugin:

    1. Dirígete al apartado Plugins >> Añadir nuevo.
    2. En el campo de búsqueda escribe Wordfence.
    3. Haz clic en Instalar ahora y seguidamente en Activar.

    3.2 Ingresa el email de alertas

    Una vez actives el plugin, Worfence te mostrará una ventana donde debes ingresar un correo electrónico para recibir alertas de seguridad de los ataques que recibe tu sitio web.

    • Ingresa tu correo electrónico.
    • Selecciona entre YES/NO si deseas recibir alertas de seguridad y noticias sobre Wordfence.
    • Marca la casilla para aceptar los términos y condiciones.
    • Haz clic en el botón CONTINUE.
    Ingresa un correo electrónico para recibir alertas de seguridad de Wordfence
    Ingresa un correo electrónico para recibir alertas de seguridad de Wordfence

    A continuación te pide que ingreses el número de licencia en caso que hayas adquirido la versión PREMIUM. Si estás utilizando la versión gratuita, haz clic en el enlace No Thanks.

    3.3 Configura el firewall

    En la parte superior de la pantalla verás un aviso: To make your site as secure as possible, take a moment to optimize the Wordfence Web Application Firewall:. Haz clic en el botón CLICK HERE TO CONFIGURE.

    Mensaje de configuración del firewall de Wordfence
    Mensaje de configuración del firewall de Wordfence

    Se abrirá otra ventana donde tendrás que seleccionar una configuración del servidor. Deja seleccionada la que indica por defecto: recomended based on our test.

    Selección del servidor en Wordfence
    Selección del servidor en Wordfence

    Es posible que esta recomendación sea diferente a la de la imagen anterior. Eso dependerá del servidor que estés utilizando.

    Haz clic en el botón DOWNLOAD .HTACCESS y luego clic en el botón CONTINUE. Te mostrará otra ventana indicando que el firewall está configurado. Haz clic en el botón CLOSE.

    Para finalizar con la configuración del firewall, verás un bloque llamado Web Application Firewall Status. Selecciona Enabled and Protecting y haz clic en el botón SAVE CHANGES en la parte superior derecha de la pantalla.

    3.4 Configura las opciones globales

    En el menú principal de WordPress dirígete al aparatado Wordfence >> Dashboard. Haz clic en Global Options (icono de rueda dentada).

    Estas opciones se pueden ir configurando según las necesidades que tengas. Una vez hayas realizado una configuración personalizada para tu sitio web, desde el apartado Import/Export Options, podrás exportarlas mediante un código (token) para luego importarlas en otras instalaciones de WordPress.

    3.5 Escanea tu sitio para comprobar vulnerabilidades

    En el menú principal de WordPress dirígete al aparatado Wordfence >> Scan. Haz clic en el botón START NEW SCAN para comenzar con el escaneo de todos tus archivos de WordPress.

    En la parte inferior de la página podrás observar el proceso de escaneo y las vulnerabilidades que presenta tu sitio web.

    Escaneo del sitio en Wordfence
    Escaneo del sitio en Wordfence

    Como puedes observar en la imagen anterior, Wordfence indica que existen 2 vulnerabilidades:

    • WordPress core file modified: wp-config-sample.php. Se refiere al archivo wp-config-sample.php que es nativo de WordPress. Normalmente los escaneos que realiza Wordfence siempre van a indicar esta vulnerabilidad. No es nada grave y seguramente se deba a que este archivo no debería existir en una instalación de WordPress. Puedes eliminarlo del servidor o indicarle a Wordfence que lo ignore.
    • User "admin" with "administrator" access has an easy password. Esto se debe a que aún existe el usuario admin con la contraseña admin en WordPress. Obviamente este usuario hay que eliminarlo ya que es "crítico" que exista en una instalación en WordPress.

    Anuncio publicitario

    4. Conclusión

    Realizando estos simples pasos y con este potente plugin de seguridad en WordPress, tendrás una instalación completamente segura.

    Es posible que existan más técnicas para mantener seguro WordPress. Si conoces alguna que no haya indicado en esta lección, te invito a que lo compartas con el resto de usuarios dejando un comentario al final de esta lección.

    ¿Te ha gustado?

    Te estaría muy agradecido si pudieras valorar esta entrada y compartirla en tus redes sociales. De esta manera me animas a continuar trabajando en este proyecto y ayudas a otras personas que desean aprender.

    (17 votos, promedio: 4.9 de 5)

    Facebook
    Twitter
    WhatsApp
    Telegram
    Email

    ¿Me invitas un café?

    Todo el contenido que puedes encontrar en este sitio web es gratis y siempre lo será pero, mantenerlo, requiere de muchos cafés y muuuuchas horas . Si te gusta mi trabajo y te está ayudando, considera invitarme un café para apoyarme y apoyar este proyecto. ¡Te invito un café!.

    Suscríbete y aprende WordPress desde cero

    No me gusta el SPAM y se que a ti tampoco. Sólo recibirás información útil sobre WordPress.

    Al enviar, confirmas que has leído y aceptas la política de privacidad. Conoce nuestro compromiso con tu privacidad.

    Comparte tu experiencia

    Deja un comentario si tienes alguna duda o cuéntanos cómo ha sido tu experiencia.

    Suscríbete!
    Avísame sobre

    10 Comentarios
    Inline Feedbacks
    Ver todos los comentarios

    Perdon! me ha surgido otra duda: revisando el codigo que hay que subir a la carpeta upload, le das permiso para subir esas extensiones que indicas, pero por ejemplo csv y txt no están, y la extension csv es la que se usa para poder cargar datos de productos de forma masiva. Yo lo uso con el importador de wordpress

    Si añado este código que indicas, se bloquea este asistente importación?

    Hola Juan, podrías añadir estas extensiones si también las utilizas en el código utilizando la barra "|" como separador. Un saludo!

    Hola Gian, estoy intentando aplicar tus recomendaciones a mi web y en el apartado de modificar los permisos de wp-config, mi sistema de mi hosting no me lo permite, no es raiola network en mi caso. Les podría preguntar al servicio de soporte pero antes queria entender el por qué se hace esto, si me lo puedes aclarar te lo agradezco.

    En cuanto al código a añadir al "htacces", se lo añado igualmente a pesar de no poder tocar este fichero?

    Gracias por tu tiempo

    Hola Juan, esto es algo delicado que te recomiendo que hagas con cuidado. Cambiar el permiso del archivo wp-config.php a 444 es para protegerlo de ataques externos. Si no te lo permite, contacta con el soporte técnico de la empresa donde has contratado el hosting. Las reglas del archivo .htaccess, añádelas 1 a 1 y prueba si tu sitio web carga bien. Dependiendo de la configuración de tu hosting, pude que algunas reglas no funcionen. Un saludo!

    Tengo entendido que cambiar la URL de acceso al administrador es otra buena practica. En mi caso he usado un plugin para ello, otro más, xq no he sido capaz de encontrar como hacerlo a mano. Tienes alguna idea para ello? Por cierto, 1000 gracias por tus aportes

    Hola Juan, hacerlo a mano es posible pero haría falta un poco de conocimientos de programación. Lo mejor es utilizar un plugin de Seguridad, como iThemes Security (la versión Pro) que además de ayudarte con la seguridad en general del sitio web, podrás cambiar la URL del administrador. Un saludo!

    Hola Gian. Excelente tu blog. Me gustaria preguntarte algo con lo que estoy trabado. Despues de hacer todas las modificaciones al archivo .htaccess como sugerís, ya no puedo visualizar más mi blog, y en su lugar me aparece un error 403 Forbidden. tampoco puedo entrar a WordPress para administrarlo ni nada. Es decir la proteccion que le doy es tanta que ni yo puedo acceder! jaja. Cómo lo puedo solucioar? Desde ya muchas gracias!!

    Hola Germán, muchas gracias por tu comentario. Había un error en el contenido que ya he corregido. Tendrías que editar el archivo .htaccess y borrar la regla para proteger la carpeta de archivos multimedia que es la que ha causado el problema. He probado el resto de reglas y funcionan bien. En el punto 2.5 puedes leer la actualización. Un saludo!

    Muchas Gracias Gian!! Lo probé y funcionó perfecto!! El aporte que haces con este blog es excelente!! Muchisimas gracias!!

    De no haber sido por tu comentario no me hubiera dado cuenta del fallo. Gracias a ti y espero que disfrutes del curso. Saludos!

    10
    0
    ¿Dejas un comentario? Gracias!x

    Tratamiento de datos personales

    • Responsable: MARIA ANTONIETA BEAUTY CONCEPT, S.L.
    • Finalidad: Suscribirte a la lista de correos electrónicos.
    • Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en legal@cursowordpress.com, así como el derecho a presentar una reclamación ante una autoridad de control.
    • Destinatarios: Los datos no se cederán a terceros salvo en los casos en que exista una obligación legal.
    • Información adicional: En mi política de privacidad encontrarás información adicional sobre la recopilación y el uso de su información personal incluida información sobre acceso, conservación, rectificación, eliminación, seguridad y otros temas.

    Tratamiento de datos personales

    • Responsable: MARIA ANTONIETA BEAUTY CONCEPT, S.L.
    • Finalidad: Moderar y responder comentarios de usuarios.
    • Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en legal@cursowordpress.com, así como el derecho a presentar una reclamación ante una autoridad de control.
    • Destinatarios: Los datos no se cederán a terceros salvo en los casos en que exista una obligación legal.
    • Información adicional: En mi política de privacidad encontrarás información adicional sobre la recopilación y el uso de su información personal incluida información sobre acceso, conservación, rectificación, eliminación, seguridad y otros temas.