Observo el código fuente de una aplicación web y, aunque el desarrollador ha sido lo suficientemente cuidadoso como para usar sentencias preparadas para completar los parámetros de "Cadena" de la consulta, ha rellenado todos los parámetros "Largos" de la consulta. utilizando concatenación simple.
Ejemplo:
Obs: el estado tiene tipo Cadena , var1 tiene el tipo Long
Query query = entityManager.createQuery(
"SELECT UPPER(request.attributeValue) FROM PreOrderedRequests request
WHERE request.status = :status AND request.report.id = " + var1);
Sé que él / ella no debería haber hecho eso, pero mi pregunta es: ¿alguien aquí ha visto un ataque real para eso? ¿Cómo se aprovecharía este comportamiento?
Para los sospechosos: no estoy hackeando nada. Solo un amigo mío que me pidió que echara un vistazo a este código específico.