0

我有使用 set_magic_quotes_runtime() 和 magic_quotes_runtime() 的代码。

我只是注意到它们已被弃用。

这些功能是否存在任何重要的安全问题?或者我可以在 php 5.3 或更高版本上毫无问题地使用它们吗?

为什么它们被弃用?

4

2 回答 2

2

原因必须做它的用途:在 SQL 语句中转义值。问题是magic_quotes 中的转义方法不正确,因为它主要使用的目标是:MySQL。这可能导致安全漏洞。

除此之外,它还强制执行不良的编程实践。任何编写 PHP 代码的人都必须检查当前的 php.ini 值并撤消魔术引号,以确保代码在魔术引号打开或关闭的情况下始终如一地工作。

该功能已被弃用,实际上将不再有效。

如果您希望正确地转义查询,请查看 MySQLi 或 PDO 的 Prepared Statements。

编辑原来甚至还有一个维基百科页面!http://en.wikipedia.org/wiki/Magic_quotes

于 2013-07-01T17:21:52.830 回答
1

它不能管理在字符串中添加引号的所有可能性。

于 2013-07-01T17:21:16.263 回答