我一直在写一些Wordpress插件,我对Wordpress在帖子和获取数据上添加魔力引号有一些问题。
具体而言,wp中的“wp\\u magic\\u quotes”函数包括\\load。php,它在wp设置中被调用(可能在每个响应上)。php。即使我在PHP设置中关闭了magic quotes,此函数也会将magic quotes添加到数据中。
/**
* Add magic quotes to $_GET, $_POST, $_COOKIE, and $_SERVER.
*
* Also forces $_REQUEST to be $_GET + $_POST. If $_SERVER, $_COOKIE,
* or $_ENV are needed, use those superglobals directly.
*
* @access private
* @since 3.0.0
*/
function wp_magic_quotes() {
// If already slashed, strip.
if ( get_magic_quotes_gpc() ) {
$_GET = stripslashes_deep( $_GET );
$_POST = stripslashes_deep( $_POST );
$_COOKIE = stripslashes_deep( $_COOKIE );
}
// Escape with wpdb.
$_GET = add_magic_quotes( $_GET );
$_POST = add_magic_quotes( $_POST );
$_COOKIE = add_magic_quotes( $_COOKIE );
$_SERVER = add_magic_quotes( $_SERVER );
// Force REQUEST to be GET + POST.
$_REQUEST = array_merge( $_GET, $_POST );
}
我只需在wp设置中注释掉wp\\u magic\\u quotes()调用是否安全。php?也就是说,它是否会对正常的Wordpress代码产生负面影响和/或打开一些漏洞载体?如果是这样的话,除了修改WP代码之外,还有其他方法吗(这样我就不必每次更新都要处理这个问题)?
SO网友:Joe
我最近遇到了这个问题,我终于解决了。我基本上在WordPress上搜索了几乎所有的网站上的魔法语录,但没有一个有用。
以下是修复方法:
进入wp设置。php
搜索wp\\u magic\\u quotes();
只要把它评论出来,现在就应该可以了
这是有效的,因为如果您查看该代码之前的内容,您将看到:
// Disable magic quotes at runtime. Magic quotes are added using wpdb later in //wp-settings.php.
@ini_set( \'magic_quotes_runtime\', 0 );
@ini_set( \'magic_quotes_sybase\', 0 );
后来使用wpdb添加的魔法引号让大多数人都很困惑,它恰好是wp\\u Magic\\u quotes()。只需将其注释掉,就可以防止神奇的引语把你弄糊涂。