【问题标题】:Get unescaped POST, not magic quoted values in WordPress获取未转义的 POST,而不是 WordPress 中的魔法引用值
【发布时间】:2014-05-30 07:25:09
【问题描述】:

以下问题:With "magic quotes" disabled, why does PHP/WordPress continue to auto-escape my POST data?

在 WordPress 中,即使 magic quotes 关闭,所有超全局变量都会被转义。

所以,按照这个答案:With "magic quotes" disabled, why does PHP/WordPress continue to auto-escape my POST data?

如果我创建一个插件和一个类来访问原始 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 是否期望一个已经神奇的引用值或未转义的值?

【问题讨论】:

    标签: php wordpress magic-quotes-gpc


    【解决方案1】:

    看起来应该可以正常工作。在问题的后半部分,我相信 $wpdb->escape 已被弃用,根据评论块

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

    查看 WordPress 代码以确定 wpdb::prepare 是否期望魔法引用值导致我们陷入可怕的 WordPress 代码的泥潭...>咬舌

    它看起来对我来说需要非魔法引用的字符串,但如果你传递一个魔法引用的字符串,它有可能不会双重转义,尽管我会通过测试来验证。

    【讨论】:

    • 只是设置测试让我想炸毁我的大脑; wordpress 代码是我在开源领域见过的最糟糕的代码。
    • 大声笑 wpdb::prepare 期望魔术引用的值吗?我还研究了一些代码......是的,这是一场噩梦...... wp_insert_post 期望转义值。 wpdb->insert,update,delete 不期望转义值...伙计,我是否必须阅读我用来确定是否转义的每个函数?某处有清单吗??
    • 也许你应该找到一个供开发人员使用的 wordpress IRC 频道之类的。这些人应该能够更容易地回答这类问题。
    • 我将在 wordpress 论坛上发帖。可能我们缺少一些东西......我不应该在 wp 中编码,对吧?或者很多程序员只是做错了,很多插件可能容易受到 sql 注入;没有正确转义或在其内容中有额外的斜线?大声笑
    • idk,wp 的代码真的很糟糕。看到这样的系统变得如此流行真是太可惜了。我的意思是从用户的角度来看它很好,但从代码的角度来看,它很糟糕!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多