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