【发布时间】:2013-01-08 13:31:02
【问题描述】:
在将 PHP Session 发送到 MySQL 查询之前,是否需要使用 htmlspecialchars()?
一些邪恶的黑客可以在他的机器上创建带有危险 SQL 注入的会话吗?
【问题讨论】:
-
过滤所有进入 SQL 查询的数据更安全。即使它可能来自会话,也可能源自用户输入。
htmlspecialchars不是过滤大多数 sql 输入的正确函数。
在将 PHP Session 发送到 MySQL 查询之前,是否需要使用 htmlspecialchars()?
一些邪恶的黑客可以在他的机器上创建带有危险 SQL 注入的会话吗?
【问题讨论】:
htmlspecialchars 不是过滤大多数 sql 输入的正确函数。
没有。
在将文本放入 HTML 之前,您使用 htmlspecialchars()。 (受信任的 HTML 直接放入 HTML。不受信任的 HTML 通过白名单运行)。这是对 XSS 的防御。
将数据放入 SQL 查询时,您必须担心 SQL 注入。由于会话数据只包含您最初放入其中的内容,因此如果您采取任何措施来防御 SQL 注入,那么它们将取决于您放入会话中的数据。
根据经验,任何放入查询的变量都应该是inserted using bound variables and not string concatenation。
【讨论】: