我有使用 set_magic_quotes_runtime() 和 magic_quotes_runtime() 的代码。
我只是注意到它们已被弃用。
这些功能是否存在任何重要的安全问题?或者我可以在 php 5.3 或更高版本上毫无问题地使用它们吗?
为什么它们被弃用?
我有使用 set_magic_quotes_runtime() 和 magic_quotes_runtime() 的代码。
我只是注意到它们已被弃用。
这些功能是否存在任何重要的安全问题?或者我可以在 php 5.3 或更高版本上毫无问题地使用它们吗?
为什么它们被弃用?
原因必须做它的用途:在 SQL 语句中转义值。问题是magic_quotes 中的转义方法不正确,因为它主要使用的目标是:MySQL。这可能导致安全漏洞。
除此之外,它还强制执行不良的编程实践。任何编写 PHP 代码的人都必须检查当前的 php.ini 值并撤消魔术引号,以确保代码在魔术引号打开或关闭的情况下始终如一地工作。
该功能已被弃用,实际上将不再有效。
如果您希望正确地转义查询,请查看 MySQLi 或 PDO 的 Prepared Statements。
编辑原来甚至还有一个维基百科页面!http://en.wikipedia.org/wiki/Magic_quotes
它不能管理在字符串中添加引号的所有可能性。