保留准备好的陈述,或者我想在java中从sql注入“保持安全”......
我想过这样做(htmlentity转换)?
suspectedInputvariable.replace("'","'")
.replace(";","ŧ")
.replace("\"",""");
suspInputvariable 现在可以安全地嵌入SQL查询吗?
答案 0 :(得分:3)
首先,你为什么要做这样的事情?驱动程序知道如何安全地处理字符串。只需使用PreparedStatement
。
其次,你必须逃避\
和其他一些角色。如果您处理此处列出的所有字符,则您的代码在MySQL中应该是相当安全的:http://dev.mysql.com/doc/refman/4.1/en/mysql-real-escape-string.html其他数据库的字符列表可能不同。
答案 1 :(得分:2)
怀疑输入变量现在可以安全地嵌入一个SQL查询吗?
可能不是。各种SQL方言中有各种鲜为人知的特性,可以用来绕过这个黑名单。
只需使用准备好的陈述。周期。