Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
¿Esta consulta parametrizada está abierta a la inyección de SQL?

Alguien que miró mi código dijo que la consulta SQL a continuación (SELECCIONAR * DESDE...) obviamente estaba abierta a ataques. Investigué esto y parece que lo estoy haciendo correctamente usando una consulta parametrizada, pero claramente me estoy perdiendo algo.

 app.get("/api/v1/:userId", async (req, res) => { try { const teammate = await db.query("SELECT * FROM teammates WHERE uid = $1", [ req.params.userId, ]);
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esta consulta no está abierta a la inyección SQL, porque utiliza una consulta parametrizada. Los datos no se sustituyen por el parámetro ( $1 ), sino que se envían por separado en un mensaje de "enlace", por lo que no importa lo que contengan los datos, no se interpreta como parte de la instrucción SQL.

Además, parece que el argumento es un número entero, y la inyección SQL solo puede ocurrir con argumentos de cadena.

over 4 years ago · Santiago Trujillo Relatório

0

Alguien en esa empresa puede haber asumido que el $1 se usaría para la interpolación de cadenas, en lugar de un parámetro de consulta SQL.

Es posible que no sepan que PostgreSQL usa el sigilo del signo de dólar para un marcador de posición de parámetro de consulta. ¿Otras bases de datos como el uso de MySQL ? para un marcador de posición, y Oracle usa un : sigilo delante de un parámetro con nombre.

Escribiste el código correctamente. Vea un ejemplo similar para node.js y PostgreSQL aquí: https://node-postgres.com/features/queries La sección sobre "Consulta parametrizada" muestra específicamente ese estilo de código como defensa contra la inyección de SQL.

En retrospectiva, es mejor que no consigas ese trabajo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda