Tema: Ejemplo de Inyección de SQL
Usuario login(String uname, String pass) throws SQLException {
Connection conn = null;
try {
//Supongamos que se encripta el password con un MD5
conn = //obtener una conexión a base de datos
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM usuario WHERE username=? AND password=?");
ps.setString(1, uname);
ps.setString(2, pass);
ResultSet rs = ps.executeQuery(sql);
Usuario u = null;
if (rs.next()) {
//Creamos un usuario a partir de la info en el primer registro
//del ResultSet
}
rs.close();
st.close();
return u;
} finally {
if (conn != null) {
conn.close();
}
}
}
Estuve mirando y me interesa mucho esta informacion, Ezamudio tengo una duda. Cuando utilizas esta sentencia PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM usuario WHERE username=? AND password=?");
me queda la duda de que significaria el username=? y password=?, esos dos parametros seria los nombres de los campos en la BD o es simplemente una sentencia que se debe utilizar con el PreparedStatement.
ResultSet rs = ps.executeQuery(sql);
Y el parametro que le envias al executeQuery es la variable (sql), esta variable debe tener incluidos los dos parametros como lo son username y password, pero donde lo haces?
Muchas Gracias
- Inicie sesión o regístrese para enviar comentarios
En su lugar
Esto debería ser un comentario en este foro, no un foro nuevo, puesto que es una duda del otro tema.