magic_quotes off - 可以破解代码吗?
答
当magic_quotes开启时,Magic Quotes会自动对提交的所有表单数据执行addslashes()
。这意味着一个[\]
被放置在数据中的每个['],[“],[]或null之前,因此That's nice
将被自动转换为That\'s nice
。这一切都发生在编码甚至看到数据之前,只是传递一个字符串到下一页(而不是数据库),即使你根本不需要它们,也会用斜线打印。
答
不幸的是,我不认为有一个简单的答案。您需要查看您直接使用用户输入工作的任何地方。如果代码很简单,您可以搜索$ _GET和$ _POST的用法,但是至少没有扫描代码审查,您不可能找到这样的所有内容。
有一件事我已经打破了很多,当我关掉它是SQL INSERT/UPDATE查询某人写了,他们已经包含请求参数不正确地转义。
答
魔术引号会影响传入的数据字符串。您使用$_GET
或$_POST
的任何地方或此类变量都可能受到影响。
基本上,任何地方你接受用户的数据。
注:更重要的是,你应该看看通过所有 SQL查询,并确保任何输入字符串逃脱!否则,你的代码将容易受到SQL注入的攻击。
如果你有需要magic_quotes的代码,那么你应该更新它不会在PHP 5.4上运行 - magic_quotes现在已经被弃用很久了,PHP 5.4最终完全从语言中移除它。 – 2012-03-07 18:30:09