java - java 中的 Sql 安全字符串,无需准备语句

标签 java sql

准备好的语句放在一边,或者我想“保持安全”,避免java中的sql注入(inject)...

我想过这样做(htmlentity 转换)?

suspectedInputvariable.replace("'","'")
                      .replace(";","ŧ")
                      .replace("\"",""");

suspectedInputvariable现在可以安全地嵌入 SQL 查询吗?

最佳答案

首先,你为什么要做这样的事情?驾驶员知道如何安全地处理琴弦。只需使用 PreparedStatement

其次,您还必须转义 \ 和其他一些字符。如果您处理此处列出的所有字符,您的代码对于 MySQL 来说应该相当安全:http://dev.mysql.com/doc/refman/4.1/en/mysql-real-escape-string.html其他数据库的字符列表可能有所不同。

关于java - java 中的 Sql 安全字符串,无需准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9851456/

相关文章:

javascript - 如何将 Javascript 函数转换为 JQuery

java - 在 Java 中创建名为 Mutex-Semaphore

java - 将 Action 监听器添加到XML中提到的按钮

sql - 变长子串

MySQL 查询 - 加入麻烦......又来了?

java - 当数据源动态变化时如何设计 DAO

java - getServletConfig()/getServletContext() 返回空值

java - hibernate/"absolutely necessary with bi-directional links"?

sql - 防止 LEFT JOIN 中出现重复值

mysql - 两个表 - 如果两个表中均未引用 ID,如何删除行