¿Qué es una inyección SQL?

¿Qué es una inyección SQL?

Updated on:

La inyección SQL es un tipo de ataque cibernético que aprovecha las vulnerabilidades en las aplicaciones web para manipular las consultas SQL enviadas a la base de datos subyacente. Al explotar estas vulnerabilidades, los atacantes pueden insertar código malicioso en las consultas SQL, lo que les permite ejecutar operaciones no autorizadas en la base de datos. Esto puede incluir la modificación o eliminación de datos, la divulgación de información confidencial o incluso el control total del sistema.

En el corazón de la inyección SQL está la capacidad de manipular declaraciones SQL dinámicas utilizadas por las aplicaciones web para interactuar con bases de datos. Estas declaraciones suelen estar compuestas por datos proporcionados por el usuario, como formularios de entrada en línea. Cuando las aplicaciones web no validan o desinfectan adecuadamente estos datos antes de incorporarlos en las consultas SQL, crean una vulnerabilidad que los atacantes pueden explotar.

Los datos son un componente fundamental de los sistemas de información en la era digital actual. Las organizaciones utilizan aplicaciones web basadas en bases de datos para recopilar, almacenar y manipular datos de clientes, empleados y otros usuarios. El lenguaje de consulta estructurado (SQL) es la columna vertebral de estas operaciones de base de datos, permitiendo a las aplicaciones web recuperar, modificar y eliminar datos según sea necesario.

La importancia de protegerse contra la inyección SQL no puede subestimarse. Los ataques exitosos pueden tener consecuencias devastadoras, desde la pérdida de datos sensibles hasta la interrupción de las operaciones comerciales y el daño a la reputación de la organización. En un entorno digital cada vez más interconectado y vulnerable, la seguridad de las aplicaciones web y la protección de los datos son preocupaciones críticas para cualquier organización en línea.

Contenido

Impacto de los ataques de inyección SQL en la seguridad informática:

 Los ataques de inyección SQL representan una de las mayores amenazas para la seguridad informática en la actualidad. Estos ataques pueden tener consecuencias devastadoras, desde la pérdida de datos confidenciales y la interrupción del servicio hasta el robo de identidad y el acceso no autorizado a sistemas críticos. Es crucial que las organizaciones comprendan la gravedad de esta amenaza y tomen medidas proactivas para proteger sus aplicaciones web contra ella.

Evolución de las técnicas de inyección SQL:

 A medida que las técnicas de defensa contra la inyección SQL han mejorado, los atacantes han desarrollado nuevas y más sofisticadas formas de eludir estas medidas de seguridad. Por ejemplo, los ataques de inyección SQL ciega, que no dependen de la respuesta del servidor para determinar si una inyección ha sido exitosa, están ganando popularidad entre los ciberdelincuentes. Es importante que las organizaciones estén al tanto de estas nuevas técnicas y continúen mejorando sus defensas para mantenerse un paso adelante de los atacantes.

Herramientas de Prueba de Penetración: Evaluación Avanzada de Seguridad Web

Las herramientas de prueba de penetración juegan un papel fundamental en la evaluación de la seguridad de las aplicaciones web y la identificación de posibles vulnerabilidades, incluida la inyección SQL. Herramientas como Burp Suite, OWASP ZAP, Acunetix y Nessus ofrecen capacidades avanzadas para escanear, identificar y explotar vulnerabilidades de inyección SQL y otras amenazas de seguridad. Estas herramientas proporcionan interfaces intuitivas, amplias bibliotecas de exploits y potentes capacidades de informes que permiten a los profesionales de seguridad realizar evaluaciones exhaustivas de la seguridad de sus aplicaciones web y tomar medidas correctivas antes de que los atacantes puedan aprovechar las vulnerabilidades.


¿Cómo funciona el ataque de inyección SQL?

La inyección SQL aprovecha las vulnerabilidades en las aplicaciones web que interactúan con bases de datos para manipular las consultas SQL enviadas al servidor de la base de datos. El proceso de un ataque de inyección SQL puede implicar varios pasos, desde la identificación de una vulnerabilidad hasta la ejecución del código malicioso en la base de datos.

  1. Identificación de vulnerabilidades: Los atacantes buscan aplicaciones web que utilicen consultas SQL dinámicas y que no validen adecuadamente la entrada del usuario. Esto puede incluir formularios de entrada en línea, parámetros de URL o cualquier otra entrada de usuario que se incorpore en consultas SQL sin un filtrado adecuado.
  2. Manipulación de datos de entrada: Una vez que se identifica una vulnerabilidad, los atacantes manipulan los datos de entrada proporcionados por el usuario para alterar el comportamiento de las consultas SQL. Esto puede incluir la inserción de caracteres especiales o comandos SQL dentro de los campos de entrada para engañar al servidor y ejecutar código malicioso.
  3. Ejecución de código malicioso: Una vez que se inserta el código malicioso en la consulta SQL, el servidor de la base de datos puede ejecutar inadvertidamente este código como si fuera una instrucción SQL válida. Esto puede permitir a los atacantes realizar una variedad de acciones maliciosas, como extraer datos sensibles, modificar la base de datos o incluso obtener acceso al sistema subyacente.

Es importante destacar que la vulnerabilidad en la mayoría de los casos reside en la forma en que se construyen las consultas SQL dinámicas. Estas consultas se generan en tiempo de ejecución utilizando parámetros proporcionados por el usuario, lo que las hace susceptibles a la manipulación por parte de los atacantes.

Las organizaciones deben ser conscientes de esta vulnerabilidad y tomar medidas para mitigar el riesgo mediante prácticas de codificación segura, como la validación de entrada y el uso de consultas SQL parametrizadas, que separan los datos del usuario de la lógica de la consulta y reducen significativamente la superficie de ataque para los ataques de inyección SQL.

Ejemplo de inyección SQL

Consideremos una aplicación web sencilla que tiene un formulario de inicio de sesión como se muestra a continuación:

<formulario acción=’index.php’ método=»publicación»>

<tipo de entrada=»correo electrónico» nombre=»correo electrónico» requerido=»requerido»/>

<tipo de entrada=»contraseña» nombre=»contraseña»/>

<tipo de entrada=»casilla de verificación» nombre=»recordar_me» valor=»Recordarme»/>

<tipo de entrada=»enviar» valor=»Enviar»/>

</formulario>

En este formulario, los usuarios pueden ingresar su dirección de correo electrónico y contraseña para iniciar sesión. El formulario envía los datos a un archivo PHP llamado index.php. También incluye una opción para almacenar la sesión de inicio de sesión en una cookie, como se deduce de la casilla de verificación «recordar_me». Los datos se envían utilizando el método POST, lo que significa que los valores no se muestran en la URL.

Supongamos que la declaración en el backend para verificar la identidad del usuario es la siguiente:

SELECCIONE * DE los usuarios DONDE correo electrónico = $_POST[‘correo electrónico’] Y contraseña = md5($_POST[‘contraseña’]);

Mira TambienHackear el sistema operativo Linux: TutorialHackear el sistema operativo Linux: Tutorial

En este ejemplo, la declaración SQL selecciona todas las columnas de la tabla usuarios donde la dirección de correo electrónico y la contraseña coinciden con los valores proporcionados por el usuario a través del formulario de inicio de sesión. Sin embargo, este código es vulnerable a la inyección SQL debido a prácticas de codificación insegura.

La declaración anterior utiliza directamente los valores de la matriz $_POST[] sin desinfectarlos, lo que permite a un atacante manipular los datos de entrada y ejecutar código SQL malicioso. Además, la contraseña se almacena en la base de datos utilizando el algoritmo MD5, que es vulnerable a ataques de fuerza bruta y otros métodos de descifrado.

Para ilustrar cómo se puede explotar esta vulnerabilidad, podemos utilizar herramientas como SQLFiddle. SQLFiddle es una herramienta en línea que permite a los usuarios probar y demostrar ejemplos de código SQL en un entorno virtualizado. Al abrir SQLFiddle en un navegador web, los usuarios pueden escribir y ejecutar sentencias SQL y ver los resultados en tiempo real.

La inyección SQL funciona

Paso 1) Ingrese este código en el panel izquierdo

CREAR TABLA `usuarios` (

  `id` INT NO NULL AUTO_INCREMENT,

  `correo electrónico` VARCHAR(45) NULL,

  `contraseña` VARCHAR(45) NULO,

  CLAVE PRIMARIA (`id`));

insertar en los valores de los usuarios (correo electrónico, contraseña) (‘m@m.com’,md5(‘abc’));

Paso 2) Haga clic en Crear esquema

Paso 3) Ingrese este código en el panel derecho

seleccione * de los usuarios;

Paso 4) Haga clic en Ejecutar SQL. Verás el siguiente resultado

La inyección SQL funciona

Supongamos que el usuario proporciona admin@admin.sys y 1234 como contraseña. La declaración que se ejecutará en la base de datos sería

SELECCIONE * DE los usuarios DONDE correo electrónico = ‘admin@admin.sys’ Y contraseña = md5(‘1234’);

El código anterior se puede explotar comentando la parte de la contraseña y agregando una condición que siempre será verdadera. Supongamos que un atacante proporciona la siguiente entrada en el campo de dirección de correo electrónico.

xxx@xxx.xxx’ O 1 = 1 LÍMITE 1 — ‘ ]

xxx para la contraseña.

La declaración dinámica generada será la siguiente.

SELECCIONE * DE los usuarios DONDE correo electrónico = ‘xxx@xxx.xxx’ O 1 = 1 LÍMITE 1 — ‘ ] Y contraseña = md5(‘1234’);

AQUÍ,

Mira TambienCertificación CISSP: Qué es, Requisitos Previos, Costo y SalarioCertificación CISSP: Qué es, Requisitos Previos, Costo y Salario
  • xxx@xxx.xxx termina con una comilla simple que completa la comilla de cadena
  • OR 1 = 1 LÍMITE 1 es una condición que siempre será verdadera y limita los resultados devueltos a un solo registro.
  • — ‘ AND… es un comentario SQL que elimina la parte de la contraseña.

Copie la declaración SQL anterior y péguela en el cuadro de texto SQL FiddleRun SQL como se muestra a continuación

La inyección SQL funciona

Actividad de piratería: SQL inyecta una aplicación web

Imaginemos una situación donde tenemos una aplicación web sencilla en http://www.techpanda.org/ que es vulnerable a ataques de inyección SQL con fines de demostración. El código del formulario HTML para iniciar sesión se toma directamente de la página de inicio de sesión. Aunque la aplicación proporciona cierta seguridad básica, como la desinfección del campo de correo electrónico, el campo de contraseña sigue siendo vulnerable.

Supongamos que un atacante proporciona la siguiente entrada:

Paso 1: Ingresa xxx@xxx.xxx como dirección de correo electrónico.

 Paso 2: Ingresa xxx’) O 1 = 1 — como contraseña.

 Haz clic en el botón «Enviar».

Con esta entrada maliciosa, el atacante puede manipular la consulta SQL generada para omitir la autenticación y obtener acceso no autorizado al panel de control. La declaración SQL generada sería similar a la siguiente:

SELECCIONE * DE los usuarios DONDE correo electrónico = ‘xxx@xxx.xxx’ Y contraseña = md5(‘xxx’) O 1 = 1 — ]’);

Aquí, la condición OR 1 = 1 siempre será verdadera, lo que permite al atacante omitir la verificación de la contraseña y acceder al sistema. Este ejemplo ilustra cómo un ataque de inyección SQL puede ser exitoso incluso en una aplicación que implementa ciertas medidas de seguridad.

Además de omitir algoritmos de inicio de sesión, los ataques de inyección SQL pueden causar otros tipos de daño, como eliminar, actualizar o insertar datos en la base de datos, ejecutar comandos en el servidor, o exportar datos sensibles. Algunos tipos de inyección SQL incluyen inyección basada en cookies, inyección basada en errores y inyección SQL ciega.

Para automatizar y facilitar estos ataques, existen herramientas como SQLMap (http://sqlmap.org/) y JSQL (https://tools.kali.org/vulnerability-analysis/jsql). Estas herramientas proporcionan funcionalidades avanzadas para realizar pruebas de seguridad en aplicaciones web y descubrir vulnerabilidades de inyección SQL de manera eficiente.

Actividad con imagen

Imaginemos una situación donde tenemos una aplicación web sencilla en http://www.techpanda.org/ que es vulnerable a ataques de inyección SQL con fines de demostración. El código del formulario HTML para iniciar sesión se toma directamente de la página de inicio de sesión. Aunque la aplicación proporciona cierta seguridad básica, como la desinfección del campo de correo electrónico, el campo de contraseña sigue siendo vulnerable.

Supongamos que un atacante proporciona la siguiente entrada:

Paso 1: Ingresa xxx@xxx.xxx como dirección de correo electrónico. Paso 2: Ingresa xxx’) O 1 = 1 — como contraseña. Haz clic en el botón «Enviar».

Con esta entrada maliciosa, el atacante puede manipular la consulta SQL generada para omitir la autenticación y obtener acceso no autorizado al panel de control. La declaración SQL generada sería similar a la siguiente:

sql

SELECCIONE * DE los usuarios DONDE correo electrónico = ‘xxx@xxx.xxx’ Y contraseña = md5(‘xxx’) O 1 = 1 — ]’);

Aquí, la condición OR 1 = 1 siempre será verdadera, lo que permite al atacante omitir la verificación de la contraseña y acceder al sistema. Este ejemplo ilustra cómo un ataque de inyección SQL puede ser exitoso incluso en una aplicación que implementa ciertas medidas de seguridad.

Además de omitir algoritmos de inicio de sesión, los ataques de inyección SQL pueden causar otros tipos de daño, como eliminar, actualizar o insertar datos en la base de datos, ejecutar comandos en el servidor, o exportar datos sensibles. Algunos tipos de inyección SQL incluyen inyección basada en cookies, inyección basada en errores y inyección SQL ciega.

Para automatizar y facilitar estos ataques, existen herramientas como SQLMap (http://sqlmap.org/) y JSQL (https://tools.kali.org/vulnerability-analysis/jsql). Estas herramientas proporcionan funcionalidades avanzadas para realizar pruebas de seguridad en aplicaciones web y descubrir vulnerabilidades de inyección SQL de manera eficiente.

Actividad de piratería: SQL inyecta una aplicación web

Tenemos una aplicación web sencilla en http://www.techpanda.org/ que es vulnerable a ataques de inyección SQL únicamente con fines de demostración. El código del formulario HTML anterior se toma de la página de inicio de sesión. La aplicación proporciona seguridad básica, como desinfectar el campo de correo electrónico. Esto significa que nuestro código anterior no se puede utilizar para omitir el inicio de sesión.

Para evitarlo, podemos explotar el campo de contraseña. El siguiente diagrama muestra los pasos que debes seguir

SQL inyectar una aplicación web

Supongamos que un atacante proporciona la siguiente entrada

  • Paso 1: Ingrese xxx@xxx.xxx como dirección de correo electrónico
  • Paso 2: Ingrese xxx’) O 1 = 1 — ]
SQL inyectar una aplicación web
  • Haga clic en el botón Enviar
  • Serás dirigido al panel de control.

La declaración SQL generada será la siguiente

SELECCIONE * DE los usuarios DONDE correo electrónico = ‘xxx@xxx.xxx’ Y contraseña = md5(‘xxx’) O 1 = 1 — ]’);

El siguiente diagrama ilustra la declaración que se ha generado.

SQL inyectar una aplicación web

AQUÍ,

  • La declaración asume inteligentemente que se utiliza cifrado md5
  • Completa la comilla simple y el corchete de cierre.
  • Agrega una condición a la declaración que siempre será verdadera.

En general, un ataque de inyección SQL exitoso intenta utilizar varias técnicas diferentes, como las demostradas anteriormente, para llevar a cabo un ataque exitoso.

Otros tipos de ataques de inyección SQL

Las inyecciones SQL pueden causar más daño que simplemente pasar los algoritmos de inicio de sesión. Algunos de los ataques incluyen

  • Eliminar datos
  • Actualizando datos
  • Insertando datos
  • Ejecutar comandos en el servidor que pueden descargar e instalar programas maliciosos como troyanos.
  • Exportar datos valiosos, como detalles de tarjetas de crédito, correo electrónico y contraseñas, al servidor remoto del atacante.
  • Obtener detalles de inicio de sesión del usuario, etc.
  • Inyección SQL basada en cookies
  • Inyección SQL basada en errores
  • Inyección SQL ciega

La lista de arriba no es exhaustiva; simplemente te da una idea de lo que es la inyección SQL.

Herramientas de automatización para inyección SQL

En el ejemplo anterior, utilizamos técnicas de ataque manual basadas en nuestro vasto conocimiento de SQL. Existen herramientas automatizadas que pueden ayudarle a realizar los ataques de forma más eficiente y en el menor tiempo posible. Estas herramientas incluyen

Cómo prevenir ataques de inyección SQL

Para protegerse contra los ataques de inyección SQL, una organización puede adoptar la siguiente política:

Mira Tambien¿Qué es el ciberdelito? Tipos, herramientas y ejemplos¿Qué es el ciberdelito? Tipos, herramientas y ejemplos
  1. No confiar en la entrada del usuario:

 Nunca se debe confiar en la entrada del usuario sin validarla y desinfectarla adecuadamente antes de usarla en declaraciones SQL dinámicas. Esto significa utilizar métodos de validación y sanitización de datos para evitar la ejecución de código malicioso.
Por ejemplo, en lugar de concatenar directamente la entrada del usuario en una consulta SQL, se deben utilizar parámetros o métodos de escape proporcionados por los lenguajes de programación o frameworks para asegurar que los datos sean tratados como datos, no como parte de la consulta.

  1. Procedimientos almacenados:

 Los procedimientos almacenados pueden encapsular las declaraciones SQL y tratar todas las entradas como parámetros. Esto ayuda a prevenir los ataques de inyección SQL al separar la lógica de negocio de los datos de entrada del usuario.
Por ejemplo, en lugar de construir consultas SQL dinámicamente en el código, se pueden utilizar procedimientos almacenados que acepten parámetros para realizar operaciones en la base de datos de manera segura.

  1. Declaraciones preparadas:

 Las declaraciones preparadas son otro mecanismo efectivo para prevenir los ataques de inyección SQL. Funcionan creando primero la declaración SQL y luego tratando todos los datos del usuario enviados como parámetros.
Por ejemplo, en lugar de concatenar valores de usuario directamente en una consulta SQL, se pueden utilizar declaraciones preparadas que acepten parámetros para ejecutar consultas de manera segura.

  1. Expresiones regulares:

 Las expresiones regulares se pueden utilizar para detectar código potencialmente dañino y eliminarlo antes de ejecutar las declaraciones SQL. Esto puede ayudar a prevenir los ataques de inyección SQL al filtrar y validar la entrada del usuario.
Por ejemplo, se pueden utilizar expresiones regulares para validar direcciones de correo electrónico o números de teléfono antes de utilizarlos en consultas SQL.

  1. Derechos de acceso de usuario de conexión a la base de datos:

 Solo se deben otorgar los derechos de acceso necesarios a las cuentas utilizadas para conectarse a la base de datos. Limitar los privilegios de las cuentas de usuario puede ayudar a reducir lo que las sentencias SQL pueden realizar en el servidor.
Por ejemplo, se deben evitar las cuentas de usuario con privilegios excesivos y solo se deben otorgar los permisos mínimos necesarios para realizar operaciones específicas en la base de datos.

  1. Mensajes de error seguros:

 Los mensajes de error no deben revelar información confidencial ni dónde se produjo exactamente el error. En su lugar, se deben utilizar mensajes de error personalizados simples que no revelen detalles sobre la estructura de la base de datos o las consultas SQL que causaron el error.
Por ejemplo, en lugar de mostrar mensajes de error detallados que puedan revelar información sensible, se pueden utilizar mensajes genéricos que indiquen al usuario que ocurrió un error y que se está trabajando para solucionarlo.

Implementar estas medidas preventivas puede ayudar a protegerse contra los ataques de inyección SQL y mantener la seguridad de las aplicaciones web y bases de datos.

Actividad de piratería: Utilice Havij y otras herramientas para inyección SQL

En este escenario práctico, exploraremos el uso de Havij Advanced SQL Injection, así como otras herramientas y métodos disponibles, para evaluar la seguridad de un sitio web en busca de vulnerabilidades de inyección SQL. Sin embargo, es fundamental comprender que el uso de herramientas de penetración debe realizarse solo con el consentimiento explícito del propietario del sitio web y únicamente con fines éticos y legales.

Antes de proceder, es importante tener en cuenta los riesgos asociados con el uso de herramientas de penetración como Havij y otras similares. Estas herramientas tienen el potencial de causar daños significativos al sitio web objetivo, incluida la pérdida de datos y la interrupción del servicio. Además, el uso no autorizado de herramientas de penetración puede ser ilegal y está sujeto a sanciones legales.

Si decide utilizar Havij u otras herramientas similares, es esencial tomar precauciones adecuadas. Por ejemplo, es posible que deba agregar estas herramientas a la lista de exclusiones de su software antivirus para evitar que sean detectadas como malware. Además, debe asegurarse de utilizar las herramientas de manera responsable y ética, evitando cualquier actividad que pueda dañar o comprometer la seguridad del sitio web objetivo.

Es importante recordar que, además de Havij, existen otras herramientas y métodos disponibles para evaluar la seguridad de un sitio web. Estos incluyen herramientas de prueba de penetración más generales, escáneres de vulnerabilidades web, auditorías de seguridad manuales y otras técnicas de evaluación de seguridad. Antes de realizar pruebas de penetración, asegúrese de comprender completamente las leyes y regulaciones locales relacionadas con la seguridad informática y obtenga el consentimiento adecuado del propietario del sitio web.

En este escenario práctico, utilizaremos el programa Havij Advanced SQL injection para escanear un sitio web en busca de vulnerabilidades.

Nota: su programa antivirus puede marcarlo debido a su naturaleza. Debe agregarlo a la lista de exclusiones o pausar su software antivirus.

La siguiente imagen muestra la ventana principal de Havij.

Utilice Havij para inyección SQL

La herramienta anterior se puede utilizar para evaluar la vulnerabilidad de un sitio web/aplicación.

Preguntas Frecuentes sobre Inyección SQL

¿Qué es la inyección SQL y por qué es importante?

La inyección SQL es un tipo de ataque cibernético que aprovecha las vulnerabilidades en las aplicaciones web para manipular las consultas SQL enviadas a la base de datos. Es importante porque puede permitir a los atacantes acceder, modificar o eliminar datos confidenciales, comprometiendo la seguridad y la integridad de los sistemas.

¿Cuáles son los riesgos de la inyección SQL?

Los riesgos de la inyección SQL incluyen la pérdida de datos confidenciales, la interrupción del servicio, el robo de identidad, la exposición de información sensible y el acceso no autorizado a sistemas críticos. Estos ataques pueden tener graves consecuencias financieras, legales y reputacionales para las organizaciones afectadas.

¿Cómo puedo proteger mi aplicación web contra la inyección SQL?

Para proteger una aplicación web contra la inyección SQL, es fundamental implementar medidas de seguridad como la validación y sanitización de entradas de usuario, el uso de consultas parametrizadas, la adopción de procedimientos almacenados y la implementación de cortafuegos de aplicaciones web (WAF) para detectar y bloquear ataques de inyección SQL.

¿Qué debo hacer si sospecho que mi aplicación web ha sido comprometida mediante una inyección SQL?

Si sospecha que su aplicación web ha sido comprometida mediante una inyección SQL, es importante tomar medidas inmediatas para mitigar el daño. Esto puede incluir la desconexión del servidor afectado, la restauración de copias de seguridad, la notificación a los usuarios afectados y la realización de una investigación forense para determinar el alcance del incidente y prevenir futuros ataques.

Resumen

La inyección SQL es un tipo de ataque que aprovecha declaraciones SQL incorrectas en aplicaciones web para ejecutar código malicioso. Este ataque puede comentar partes de la declaración o agregar condiciones siempre verdaderas, permitiendo al atacante manipular la base de datos.

Los ataques de inyección SQL pueden ser utilizados para evadir algoritmos de inicio de sesión, así como para recuperar, insertar, actualizar y eliminar datos de la base de datos de una aplicación web.

Mira TambienMejores Software y Herramientas de Piratería Ética (2024)Mejores Software y Herramientas de Piratería Ética (2024)

Existen varias herramientas de inyección SQL disponibles para llevar a cabo estos ataques de manera automatizada, como SQLMap, SQLPing y SQLSmack, entre otras. Estas herramientas facilitan a los atacantes la identificación y explotación de vulnerabilidades de inyección SQL en aplicaciones web.

Para mitigar los riesgos de los ataques de inyección SQL, es crucial implementar una buena política de seguridad al escribir declaraciones SQL. Esto implica validar y sanitizar adecuadamente todas las entradas de usuario antes de utilizarlas en consultas SQL dinámicas, así como utilizar medidas adicionales como procedimientos almacenados, declaraciones preparadas y expresiones regulares para prevenir la ejecución de código malicioso en la base de datos.

Deja un comentario