El código que acabamos de ver es vulnerable a inyecciones SQL por la forma que conectamos las cadenas de texto
El código que acabamos de ver es vulnerable a inyecciones SQL por la forma que conectamos las cadenas de texto
¡Hola Milton!
Gracias por tu pregunta. Es cierto que la forma en que concatenamos las cadenas de texto en el código que vimos puede dejarlo vulnerable a inyecciones SQL. Para evitar este problema, te sugiero que utilices consultas parametrizadas en lugar de concatenar las cadenas de texto.
Las consultas parametrizadas son una forma segura de interactuar con la base de datos, ya que separan los datos de la consulta en sí misma. En lugar de concatenar las cadenas de texto, simplemente agregas parámetros a la consulta y luego los reemplazas con los valores correspondientes antes de ejecutar la consulta.
Aquí te dejo un ejemplo de cómo podrías reescribir la consulta que vimos en el curso utilizando una consulta parametrizada:
String sql = "SELECT * FROM usuarios WHERE username = ? AND password = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, username);
statement.setString(2, password);
ResultSet result = statement.executeQuery();
En este ejemplo, utilizamos el método setString
para agregar los valores de username
y password
como parámetros a la consulta. De esta manera, los valores se separan de la consulta y no pueden ser interpretados como parte de la misma.
Espero que esto te ayude a solucionar el problema con tu código. Si tienes alguna otra duda, no dudes en preguntar.
¡Espero haber ayudado y buenos estudios!