首页  >  文章  >  后端开发  >  为什么即使在禁用魔术引号后我的 WordPress POST 数据也会逃逸?

为什么即使在禁用魔术引号后我的 WordPress POST 数据也会逃逸?

DDD
DDD原创
2024-11-03 05:43:30264浏览

Why Is My WordPress POST Data Escaping Even After Disabling Magic Quotes?

WordPress 中的魔术引号难题

尽管禁用了 PHP 的魔术引号(通过 get_magic_quotes_gpc() 返回 0 验证),POST 数据仍然被转义。当 WordPress 集成到多站点安装中时,就会出现此问题。

WordPress 在自动转义中的角色

自动转义的原因在于 WordPress 的代码库中。即使禁用了魔术引号,WordPress 中的错误(票号 #18322)也会尝试清理输入。解决方案是按照法典中的建议,手动从输入数据中显式去除斜杠。

深度去除斜杠

要解决此问题,请从超全局深度去除斜杠使用 stripslashes_deep() 函数的数组($_GET、$_POST、$_COOKIE、$_SERVER 和 $_REQUEST):

<code class="php">$_GET       = array_map('stripslashes_deep', $_GET);
$_POST      = array_map('stripslashes_deep', $_POST);
$_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
$_SERVER    = array_map('stripslashes_deep', $_SERVER);
$_REQUEST   = array_map('stripslashes_deep', $_REQUEST);</code>

替代方法

或者,考虑在特定数组上本地使用 array_map() 而不是覆盖超全局变量:

<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>

注意事项

如上所示修改超全局变量可能会对您的应用程序产生影响。如果特定上下文允许,请考虑选择性剥离以保持数据完整性。请参阅提供的参考资料以获取更多见解。

以上是为什么即使在禁用魔术引号后我的 WordPress POST 数据也会逃逸?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn