获取未转义的POST不是wordpress中的魔术引用值?

时间:2014-04-15 19:02:21

标签: php wordpress magic-quotes-gpc

关注问题:With "magic quotes" disabled, why does PHP/Wordpress continue to auto-escape my POST data?

在wordpress中,即使魔术引号关闭,所有超级全球都会被占用

所以,按照这个答案:https://stackoverflow.com/a/8949871/1334268

如果我创建一个插件和一个类来访问原始POST,GET等等,这是一个很好的解决方案吗?你认为这种方法有什么缺点和问题吗?这是我的插件:

class MyPluginRequest{
    public static function getPost( $key ){
        global $_REAL_POST;
        return isset( $_REAL_POST[ $key ] )? $_REAL_POST[ $key ] : FALSE ;
    }
}

// A hack to cope with un-configurable call to wp_magic_quotes
// E.G. Make the original $_POST available through a global $_REAL_POST
global $_REAL_GET, $_REAL_POST, $_REAL_COOKIE, $_REAL_REQUEST;
$_REAL_GET     = $_GET;
$_REAL_POST    = $_POST;
$_REAL_COOKIE  = $_COOKIE;
$_REAL_REQUEST = $_REQUEST;

每次我需要张贴未转义的值时,我都会使用MyPluginRequest::getPost( 'submit' );

$wpdb->escape是否需要魔术引用值或非转义值?

1 个答案:

答案 0 :(得分:1)

看起来它应该可以正常工作。在问题的后半部分,我认为$wpdb->escape已根据评论栏

被弃用
/**  
 * Do not use, deprecated.
 *
 * Use esc_sql() or wpdb::prepare() instead.
 *
 * ...

查看wordpress代码以确定wpdb::prepare是否期望魔术引用值会让我们陷入可怕的wp代码的泥潭......> bites tounge<

它看起来像是期待非魔法引用的字符串给我,但是如果你传给它一个魔术引用的字符串,它有可能不会双重逃避,尽管我会通过测试验证。