jerustes / three-pointer

Galaxy NBA Web Application
0 stars 0 forks source link

Prepared Statements #3

Open jerustes opened 6 years ago

jerustes commented 6 years ago
try(PreparedStatement st = connection.prepareStatement("SELECT ... ? ... ?"));
    st.setInt(1, anho);
    st.setString(2, nombre);
    ResultSet rs = st.executeQuery(); 
//WARNING: nothing as param to executeQuery or we vulnerable af

Los interrogantes del prepared statement van sin entrecomillar, lo metemos directamente en la cadena, sin concatenar nada. Java ya interpreta directamente cómo tiene que gestionar eso. Si metiésemos parámetro executeQuery() estaríamos llamando al método de la superclase Statement y seríamos igualmente vulnerables que si no usásemos prepared

josemprb commented 6 years ago

Si PreparedStatement no es ejecutado correctamente, no sirve como protección ante la explotación de la sintaxis SQL.