Dúvida - é SQL Injection ou não?

Ao tentar mandar Aspas simples (’) para a string sql, por exemplo: Eduardo’s House

Chega no comando SQL e Fica.

“SELECT * FROM tabInfo WHERE nmInfo = '” + variável + "’;

a variável possui a aspa simples(’), o que faz o comando ser fechado. e dar zica em tudo.

Existe como eu passar a aspa simples para o banco de dados(SQL Server)?

A única coisa que pensei é dar um replaceAll por uma sequencia de caracteres, o problema é que no banco ficaria esquisito!

Att,

Usa PreparedStatement.

PreparedStatement pstmt = connection().prepareStatement("SELECT * FROM tabInfo WHERE nmInfo = ?");
pstmt.setString(variavel);

Statement não funciona?

Não vai rolar por causa das aspas. E não se deve usar o Statement que ele é passível de SQLInjection. E também é mais complicado você ficar separando no Select aspas simples de aspas duplas. Com PreparedStatement não precisa disso, usa o ? e depois coloca no método a variável que representará o valor do ?.

Só uma coisa, coloquei errado o método, faltou um parametro:

PreparedStatement pstmt = connection().prepareStatement("SELECT * FROM tabInfo WHERE nmInfo = ?");  
pstmt.setString(1, variavel); 

Caso no select você tenha mais de um teste, faça assim:

PreparedStatement pstmt = connection().prepareStatement("SELECT * FROM tabInfo WHERE nmInfo = ? AND descricao = ? AND nome = ?");  
pstmt.setString(1, variavel); 
pstmt.setString(2, descricao); 
pstmt.setString(3, nome); 

É isso ai mesmo.
Depois quando tiver evoluindo estuda Hibernate/JPA que ele facilitará e muito sua vida nesse sentido.

brigado rapaziada, obrigado mesmo.

Irei estuda o impacto que isso vai ter no código. valeu!

é isso ai , use o preparedStetment e iras resolver o problema de Sql injection

Cuidado para não por aspas entre as interrogações e sempre respeitar os indices dos mesmos!

Depois é so colocar resolvido ai no Post