Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come acquisire/codificare caratteri speciali per SQL Server nell'app Java?

Immagino che tu costruisca l'SQL in qualche modo come

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

O qualcosa del genere? Se lo fai, sei aperto a tutti i tipi di exploit e vedrai anche un comportamento come quello che descrivi, in cui la stringa risultante non è più un SQL valido. Dovresti prima sfuggire al parametro fornito dall'utente.

La soluzione migliore è utilizzare PreparedStatements, quindi lo fai

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

Tuttavia, non riesco a vedere alcun modo rapido per risolvere il tuo problema senza alterare alcun codice Java, barra forse l'escape/sanitizzazione dell'input prima che colpisca il tuo codice (ad esempio javascript se sei una webapp)