【发布时间】:2014-04-14 04:25:49
【问题描述】:
背景:我已经开始了一个项目,使用JDBC和MYSQL来模拟一个书店,都是本地的。为了连接到数据库,我开始使用语句,但我开始读到,当多次使用仅更改其参数的查询时,对这些查询使用 PreparedStatement 会更有效。然而,我读到最多的优点是 PreparedStatements 如何更好地防止 SQL 注入。
来源:
此线程的答案here
谷歌
教授
我的问题: 在处理参数化查询时,PreparedStatements 如何比 Statements 更好地防止 SQL 注入,甚至是不同的?我很困惑,因为如果我理解正确,这些值仍然会传递到执行的 SQL 语句中,这取决于程序员来清理输入。
【问题讨论】:
-
"由程序员来清理输入。"那么可能出了什么问题呢?
-
它们更安全,因为它们使用参数。从代码或用户连接字符串的准备好的语句将完全没有意义,不是吗。每次更改参数时,您都必须重新准备它。
-
阅读答案的内容并尝试关注那里发布的链接。例如:SQL Injection article from Wikipedia
-
如何使用参数更安全? @托尼霍普金森
-
如果您使用 PreparedStatements,为什么不必进行清理? @他的
标签: java mysql sql jdbc prepared-statement