【发布时间】:2013-01-18 00:18:05
【问题描述】:
所以我一直想知道,在 previous question 建议使用 PDO 准备语句之后,为什么在连接到我的数据库以在这样的实例中使用它们时很重要?
例如使用$_SERVER['REMOTE_ADDR']
我的意思是,如果没有人知道我正在使用数据库,并且他们不知道我在寻找什么,而我在数据库中寻找的东西(假设他们知道)是一个 IP 地址,为什么要重要?这是 XSS 攻击的问题吗?
真正的问题。在这种情况下,永远无法找到使用 PDO 语句(或类似方法)的任何理由。我确定不是很脆弱吗?
【问题讨论】:
-
这不是关于 XSS,而是关于 SQL 注入。您不需要知道应用程序是否使用数据库(大多数情况下)来尝试 SQL 注入攻击;如果它有效,它确实有效。你要找什么也没关系。
-
@RobertHarvey 你是对的。但是,当他在选择中使用
$_SERVER['REMOTE_ADDR']的值时,怎么可能有人注入一些随机的 SQL 代码? -
@cheesemacfly:通过在某些输入的末尾放置一个分号。如果根本没有用户输入,就没有注入的可能性。但是,当最佳实践是使用 PDO 准备好的语句时,为什么还要冒险呢?
-
呃,如果你使用准备好的语句,你就不必进行这个讨论了。