public static String StringtoSql(String str)
{
str = nullToString(str, "");
try {
str = str.trim().replace('\'', (char) 1);
} catch (Exception e) {
return "";
}
return str;
}
这个方法实现什么功能?是防止SQL注入吗?谢谢,
{
str = nullToString(str, "");
try {
str = str.trim().replace('\'', (char) 1);
} catch (Exception e) {
return "";
}
return str;
}
这个方法实现什么功能?是防止SQL注入吗?谢谢,
可能是防止sql语法报错吧估计是用String拼成sql语句时,确保where条件没有异常
第一种是字符检测,当检测到有破坏sql语句的字符的时候替换掉或者报错,例如【--】、【‘】、【=】等等,这种事程序手动实现,需要一定技巧。
第二种是所有对数据库的访问全部封装成存储过程,通过存储过程对数据库的访问来获得或者删减值。
第三种就是在程序中使用预编译语句,例如select * from table where id=? 这样的形式,然后后面再用preper.setString(1,"1")的方式。
一般推荐使用第三种方式,这样比较简单一点。