Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Cómo prevenir ataques de inyección SQL en WordPress (7 consejos)

Nota editorial: Ganamos una comisión de los enlaces de socios en WPBeginner. Las comisiones no afectan a las opiniones o evaluaciones de nuestros editores. Más información sobre Proceso editorial.

¿Quiere prevenir los ataques de inyección SQL en WordPress?

La inyección SQL es una vulnerabilidad de seguridad que los hackers pueden utilizar para atacar la base de datos de su sitio web. Una vez que lo hacen, un atacante puede leer tus datos sensibles, modificarlos y tomar el control de toda tu base de datos.

En este artículo, compartiremos algunos consejos prácticos para prevenir ataques de inyección SQL en WordPress, paso a paso.

Prevent WordPress SQL Injection Attacks

¿Por qué prevenir los ataques de inyección SQL en WordPress?

SQL significa Structured Query Language (Lenguaje de consulta estructurado), que es un lenguaje de programación que se comunica con la base de datos de su sitio WordPress. Sin esta función, su sitio no puede generar ningún contenido dinámico.

Sin embargo, la entrada no autorizada de datos por parte del usuario, un software obsoleto o la revelación de información sensible pueden causar una vulnerabilidad de seguridad y facilitar a los piratas informáticos la realización de ataques de inyección SQL.

Este ataque se dirige a su servidor de base de datos y añade código o sentencias maliciosas a su SQL. Al hacerlo, los hackers pueden utilizar la información confidencial almacenada en su base de datos, como los datos de usuario, para el robo de identidad, la toma de posesión de cuentas, el fraude financiero, etc.

También pueden cambiar las entradas de la base de datos o el permiso de la cuenta y realizar ataques DDOS, dificultando que los usuarios reales visiten su sitio web.

Esto puede dañar la confianza del cliente, impactar negativamente en la experiencia del usuario y disminuir el tráfico de su sitio web, lo que será malo para el crecimiento de su pequeña empresa.

Dicho esto, veamos algunos consejos prácticos para prevenir ataques de inyección SQL en WordPress.

Nota: Antes de realizar cualquier cambio en su base de datos por prevención, le recomendamos que cree una copia de seguridad de la misma. De esta manera, si algo va mal, puede utilizar la copia de seguridad para solucionarlo. Para más detalles, consulta nuestro tutorial sobre cómo hacer una copia de seguridad de la base de datos de WordPress manualmente.

1. Actualice el sitio regularmente y utilice un cortafuegos

Una forma eficaz de prevenir los ataques de inyección SQL es actualizar periódicamente su sitio de WordPress a la última versión. Estas actualizaciones suelen parchear vulnerabilidades de seguridad, incluidos problemas de software de bases de datos, lo que dificulta que los hackers ataquen tu sitio.

Si utiliza una versión obsoleta de WordPress, le recomendamos que active las actualizaciones automáticas de la última versión visitando la página Panel de control ” Actualizaciones.

Aquí, simplemente haga clic en el enlace “Activar actualizaciones automáticas para todas las nuevas versiones de WordPress”. Ahora todas las actualizaciones importantes se instalarán en tu sitio en cuanto se publiquen.

Install WordPress updates

Para obtener más información, puede consultar nuestra guía para principiantes sobre cómo actualizar WordPress de forma segura.

Una vez hecho esto, también puedes añadir un cortafuegos para mayor seguridad. Esta función actúa como un escudo entre tu sitio y el tráfico entrante y bloquea las amenazas de seguridad habituales, incluidos los ataques SQL, antes de que lleguen a tu sitio web.

Para esta función, recomendamos Sucuri, que es el mejor software cortafuegos para WordPress del mercado. Ofrece un cortafuegos a nivel de aplicación, prevención de fuerza bruta, así como servicios de eliminación de malware y listas negras, por lo que es una gran elección.

How website firewall blocks attacks

Además, la herramienta nos ayudó a bloquear unos 450.000 ataques a WordPress en nuestro sitio web en el pasado.

Para más detalles, consulte nuestra guía completa sobre seguridad en WordPress.

2. Ocultar la versión de WordPress

Por defecto, WordPress muestra el número de versión actual del software que utiliza en su sitio web. Por ejemplo, si utiliza WordPress 6.4, esta versión se mostrará en su sitio para su seguimiento.

Sin embargo, la visibilidad pública de su número de versión puede causar amenazas de seguridad y facilitar a los hackers la realización de ataques de inyección SQL en WordPress.

Remove WordPress version number

Esto se debe a que cada versión de WordPress tiene sus propias vulnerabilidades únicas que los atacantes pueden explotar después de descubrir su versión. Esto les permitirá añadir fragmentos de código malicioso a su sitio a través de campos de entrada vulnerables.

Puede eliminar fácilmente el número de versión de su sitio añadiendo el siguiente fragmento de código a su archivo functions. php.

add_filter('the_generator', '__return_empty_string');

Una vez hecho esto, los hackers no podrán encontrar su número de versión de WordPress a través de escáneres automáticos ni de ninguna otra forma.

Nota: Tenga en cuenta que un pequeño error al añadir código puede hacer que su sitio web sea inaccesible. Por eso recomendamos WPCode. Es el mejor plugin de fragmentos de código que hace que la adición de código personalizado a su sitio super seguro y fácil.

Para más detalles, consulte nuestro tutorial sobre la forma correcta de eliminar el número de versión de WordPress.

3. Cambiar el prefijo de la base de datos de WordPress

Por defecto, WordPress añade el prefijo wp_ a todos sus archivos de base de datos, lo que facilita a los hackers planear un ataque apuntando al prefijo.

La forma más sencilla de prevenir los ataques de inyección SQL es cambiar el prefijo predeterminado de la base de datos por algo único que los hackers no puedan adivinar.

Puede hacerlo fácilmente conectando su sitio web mediante FTP. Después de eso, abra el archivo wp-config.php y encontrar el cambio de la línea $table_prefix. A continuación, puede cambiarlo de simplemente el valor predeterminado wp_ a algo más como esto: wp_a123456_.

$table_prefix  = 'wp_a123456_';

A continuación, debe visitar el cPanel de su cuenta de alojamiento web. Para este tutorial, vamos a utilizar Bluehost, sin embargo, su cPanel puede parecer un poco diferente dependiendo de su compañía de alojamiento web.

Aquí, cambie a la pestaña “Avanzado” y haga clic en el botón “Administrar” situado junto a la sección “PHPMyAdmin”.

Click the Manage button next to the PHPMyAdmin section

Se abrirá una nueva página en la que deberás seleccionar el nombre de tu base de datos en la columna de la izquierda y cambiar a la pestaña “SQL” en la parte superior.

A continuación, puede añadir la siguiente consulta SQL en el cuadro de texto.

SQL query in phpMyAdmin

No olvide cambiar el prefijo de la base de datos por el que haya elegido al editar el archivo wp-config.php.

RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;

Para más instrucciones, puede consultar nuestro tutorial sobre cómo cambiar el prefijo de la base de datos de WordPress para mejorar la seguridad.

4. Validar datos de usuario

Los hackers suelen inyectar ataques SQL en su sitio web utilizando campos en los que se introducen datos de los usuarios, como las secciones de comentarios o los campos de los formularios de contacto.

Por eso es importante validar todos los datos que se envían a su blog de WordPress. Esto significa que los datos de los usuarios no se enviarán a tu sitio si no siguen un formato específico.

Por ejemplo, un usuario no podrá enviar su formulario si el campo de dirección de correo electrónico no tiene el símbolo ‘@’. Si añades esta validación a la mayoría de los campos del formulario, evitarás los ataques de inyección SQL.

Validate your email field

Para ello, necesitará Formidable Forms, que es un plugin avanzado de creación de formularios. Viene con una opción ‘Input Mask Format’ donde puedes añadir el formato que los usuarios deben seguir para enviar los datos del campo del formulario.

Puede añadir un formato específico para números de teléfono o campos de texto individuales.

Add hone number format

Si no quieres validar los campos de tu formulario, entonces te recomendamos WPForms porque es el mejor plugin para formularios de contacto que viene con protección completa contra spam y soporte para Google reCAPTCHA.

También puedes añadir menús desplegables y casillas de verificación en tus formularios con él. Esto dificultará que los hackers añadan datos maliciosos.

wpforms

Para más detalles, consulte nuestro tutorial sobre cómo crear un formulario de contacto seguro en WordPress.

5. Limitar el acceso y los permisos de las funciones de los usuarios

Otro consejo para prevenir ataques de inyección SQL en WordPress es limitar el acceso de los usuarios a su sitio web.

Por ejemplo, si tienes un blog multiautor, entonces tendrás varios autores junto con suscriptores y administradores. En ese caso, puedes mejorar la seguridad del sitio limitando el acceso total de administración sólo al administrador.

Puede restringir el resto de roles de usuario a funciones específicas que necesitarán para realizar su trabajo. Esto reducirá el acceso de los usuarios a su base de datos y evitará ataques de inyección SQL.

Puedes hacerlo con el plugin gratuito Remove Dashboard Access. Tras la activación, simplemente visita la página Configuración “ Acceso al panel de control, donde podrás decidir qué roles de usuario tienen acceso al panel de control.

Limit the dashboard access settings

Si desea limitar a los usuarios en función de sus capacidades, puede consultar nuestro tutorial sobre cómo añadir o eliminar capacidades de los roles de usuario en WordPress.

Del mismo modo, también puede limitar los autores a sus propios mensajes en su área de administración para mayor seguridad.

6. Crear mensajes de error de base de datos personalizados

A veces sus usuarios pueden encontrarse con un error de base de datos en su sitio web, lo que puede mostrar información importante sobre su base de datos, haciéndola vulnerable a ataques de inyección SQL.

En ese caso, recomendamos crear un mensaje de error de base de datos personalizado que se mostrará a los usuarios cuando se encuentren con este error común. Para ello, tendrás que copiar y pegar el siguiente contenido en una aplicación de bloc de notas y guardar el archivo como ‘db-error.php’.

<?php // custom WordPress database error page
   
  header('HTTP/1.1 503 Service Temporarily Unavailable');
  header('Status: 503 Service Temporarily Unavailable');
  header('Retry-After: 600'); // 1 hour = 3600 seconds
   
  // If you wish to email yourself upon an error
  // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
   
?>
   
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
  You got problems.
</body>

A continuación, conecte su sitio a un programa FTP y cargue el archivo que acaba de crear en el directorio /wp-content/ de su sitio.

Ahora, cuando los usuarios se encuentren con un error de base de datos en su sitio web, sólo verán un mensaje de error informándoles del problema sin revelar ninguna información sensible.

Custom database error preview page

Además, se mostrará el título “Error de base de datos” en la pestaña del navegador web.

Para más detalles, consulte nuestro tutorial sobre cómo añadir una página de error de base de datos personalizada en WordPress.

7. Eliminar funciones innecesarias de la base de datos

Para prevenir los ataques de inyección SQL, también debe tratar de eliminar toda la funcionalidad de la base de datos y los archivos que no necesita en su sitio web.

Por ejemplo, puede eliminar tablas innecesarias, basura o comentarios no aprobados que pueden hacer que su base de datos sea susceptible a los piratas informáticos.

Para eliminar funcionalidades innecesarias de la base de datos, recomendamos WP-Optimize. Es un plugin increíble que elimina tablas innecesarias, revisiones de entradas, borradores, comentarios basura, entradas eliminadas, pingbacks, metadatos de entradas y mucho más.

Remove unecessary database functionality

Elimina todos los archivos que no necesitas y optimiza tu base de datos para que sea más segura y rápida. Para más detalles, consulta nuestra guía para principiantes sobre cómo optimizar tu base de datos de WordPress.

Bonificación: Utilice los servicios WPBeginner Pro para crear un sitio seguro

Una vez que haya tomado todas las medidas preventivas contra los ataques de inyección SQL, también puede optar por WPBeginner Pro Services.

Podemos ayudarle a identificar y corregir cualquier otra vulnerabilidad de seguridad que desconozca. Además, si ya se ha enfrentado a un ataque de inyección SQL, nuestros expertos pueden ayudarle a contener los daños y recuperar sus sistemas.

WPBeginner Professional Services Hacked Site Repair

También puede contratarnos para mejorar la optimización de la velocidad de su sitio, el diseño, el SEO o incluso reconstruir completamente su sitio WordPress existente, tanto si ha sido pirateado como si no.

Para más información, consulte todos nuestros servicios profesionales WPBeginner.

Esperamos que este artículo te haya ayudado a aprender cómo prevenir los ataques de inyección SQL en WordPress. También puedes consultar nuestra guía para principiantes sobre la gestión de bases de datos en WordPress y nuestra selección de los mejores plugins para bases de datos en WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

Obtenga acceso GRATUITO a nuestro kit de herramientas - una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Reader Interactions

1 comentarioDeja una respuesta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

Deja tu comentario

Gracias por elegir dejar un comentario. Tenga en cuenta que todos los comentarios son moderados de acuerdo con nuestros política de comentarios, y su dirección de correo electrónico NO será publicada. Por favor, NO utilice palabras clave en el campo de nombre. Tengamos una conversación personal y significativa.