Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Sugerencia segun CHATGPT

Buenas que opinan de esta sugerencia que me dio CHATGPT. Segun indica que concatenar valores directamente en una consulta SQL puede llevar a vulnerabilidades de seguridad como ataques de inyección de SQL. Es una buena práctica utilizar consultas parametrizadas o preparadas en lugar de concatenación de cadenas para evitar estos problemas. Aca les muestro mi codigo.

public class ProductoController {

    public void modificar(String nombre, String descripcion, Integer cantidad, Integer id) throws SQLException {
        Connection con = new ConnectionFactory().recoverConnection();
        Statement statement = con.createStatement();
        
        //Codigo solucion original...
        /*statement.execute("UPDATE PRODUCTO SET NOMBRE =  '" + nombre + "', DESCRIPCION = '" + descripcion + "', CANTIDAD = " + cantidad +
                " WHERE ID = "  + id);*/
        
        // lo que se tiene que  hacer segun chatGPT....

        String updateQuery = "UPDATE PRODUCTO SET NOMBRE = ?, DESCRIPCION = ?, CANTIDAD = ? WHERE ID = ?";
        try (PreparedStatement preparedStatement = con.prepareStatement(updateQuery)) {
            preparedStatement.setString(1, nombre);
            preparedStatement.setString(2, descripcion);
            preparedStatement.setInt(3, (cantidad));
            preparedStatement.setInt(4, id);
            preparedStatement.executeUpdate();
        }catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

¿Que les parece?

1 respuesta

¡Hola Diego!

Si, la concatenación directa de valores en una consulta SQL puede ser peligrosa, ya que puede abrir la puerta a ataques de inyección SQL. Es una buena práctica utilizar consultas parametrizadas o preparadas en lugar de la concatenación de cadenas.

En el código, has implementado la consultas preparadas, esto es excelente, ya que ayuda a evitar vulnerabilidades de seguridad. Al utilizar consultas preparadas, puedes pasar los valores como parámetros y el motor de base de datos se encargará de manejarlos de manera segura.

De esta manera, estás protegiendo tu aplicación contra ataques de inyección SQL y siguiendo buenas prácticas de seguridad.

Espero que esta respuesta te sea de ayuda. Mucho éxito en todo lo que te propongas y si tienes más duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios