Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1K
Vistas
Prevenir la inyección de SQL en JavaScript / Node.js

Estoy usando Node.js para crear un bot de Discord. Parte de mi código se ve así:

 var info = { userid: message.author.id } connection.query("SELECT * FROM table WHERE userid = '" + message.author.id + "'", info, function(error) { if (error) throw error; });

La gente ha dicho que la forma en que introduzco el message.author.id no es una forma segura. ¿Cómo puedo hacer esto? ¿Un ejemplo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La mejor manera de hacerlo es usar declaraciones o consultas preparadas (enlace a la documentación del módulo NPM mysql : https://github.com/mysqljs/mysql#preparing-queries )

 var sql = "SELECT * FROM table WHERE userid = ?"; var inserts = [message.author.id]; sql = mysql.format(sql, inserts);

Si las declaraciones preparadas no son una opción (no tengo idea de por qué no lo serían), la manera de un hombre pobre de evitar la inyección de SQL es escapar de todas las entradas proporcionadas por el usuario como se describe aquí: https://www.owasp.org/ index.php/SQL_Injection_Prevention_Cheat_Sheet#MySQL_Escape

over 4 years ago · Santiago Trujillo Denunciar

0

Utilice consultas preparadas;

 var sql = "SELECT * FROM table WHERE userid = ?"; var inserts = [message.author.id]; sql = mysql.format(sql, inserts);

Puede encontrar más información aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí está la documentación sobre cómo escapar correctamente de cualquier dato proporcionado por el usuario para evitar inyecciones de SQL: https://github.com/mysqljs/mysql#escaping-query-values . mysql.escape(userdata) debería ser suficiente.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda