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

Hvordan indfanger/koder man specialtegn til SQL Server i java-appen?

Jeg gætter på, at du konstruerer SQL'en på en måde som

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

Eller noget lignende? Hvis du gør det, er du åben for alle former for udnyttelser, og du vil også se adfærd, som du beskriver, hvor den resulterende streng ikke længere er gyldig SQL. Du skal først undslippe den brugerleverede parameter.

Den bedste løsning er at bruge PreparedStatements, så det gør du

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

Jeg kan dog ikke se nogen hurtig måde at løse dit problem på uden at ændre nogen Java-kode, bar måske undslippe/sanere input, før det rammer din kode (f.eks. javascript, hvis du er en webapp)



  1. Sådan ignoreres fejl med psql \copy meta-kommando

  2. CodeIgniter-billedfilen kan ikke uploades

  3. Hvordan laver man en indre deltagelse i django?

  4. MySQL autoincrement-kolonnen hopper med 10 - hvorfor?