簡體   English   中英

獲得未轉義的 POST,而不是 WordPress 中的魔術引用值

[英]Get unescaped POST, not magic quoted values in WordPress

遵循以下問題: 禁用“魔術引號”后,為什么 PHP/WordPress 會繼續自動轉義我的 POST 數據?

在 WordPress 中,即使魔術引號關閉,所有超全局變量也會被轉義。

因此,請遵循以下答案: 禁用“魔術引號”后,為什么 PHP/WordPress 會繼續自動轉義我的 POST 數據?

如果我創建一個插件和一個類來訪問原始 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期望一個已經神奇的引用值還是一個未轉義的值?

看起來它應該可以正常工作。 在問題的后半部分,我相信$wpdb->escape已被棄用,根據評論塊

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

查看 WordPress 代碼以確定wpdb::prepare期望魔術引用值將我們引入可怕的 WordPress 代碼的泥潭......>咬舌頭<

看起來它希望對我來說是非魔法引用的字符串,但是如果你傳遞一個魔法引用的字符串,它有可能不會雙重轉義,盡管我會通過測試進行驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM