sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo capturar/codificar caracteres especiales para SQL Server en la aplicación java?

Supongo que construyes el SQL de alguna manera como

String sql = "Select Column from tab where column='" + StringParm + "'"; 

¿O algo así? Si hace eso, está abierto a todo tipo de vulnerabilidades y también verá un comportamiento como el que describe, donde la cadena resultante ya no es un SQL válido. Primero tendría que escapar del parámetro proporcionado por el usuario.

La mejor solución es usar PreparedStatements, así que lo hace

Statement stmt = conn.prepareStatement("Select Column from tab where column=?");
stmt.setString(1,StringParam);

Sin embargo, no puedo ver ninguna forma rápida de resolver su problema sin alterar ningún código Java, salvo quizás escapar/desinfectar la entrada antes de que llegue a su código (por ejemplo, javascript si es una aplicación web)