2014-03-03 15 views
0

沿線的某處我必須啓用一些什麼是轉義命令。我已經通過配置,似乎沒有什麼突出。我目前有$config['global_xss_filtering'] = FALSE;,並且看不到還有其他的轉義完成。CodeIgniter與wordpress自動轉義發佈數據

我創建了一個空白的控制器

<?php 

if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Test extends CI_Controller { 

    public function index() { 
     var_dump($_POST); 
     $this->load->view('tinymce'); 
    } 

} 

和一個非常基本的表格數據頁

<form method="post" action="<?php echo site_url() . uri_string()?>"> 
    <textarea name="response"></textarea> 
    <input type="submit" value="submit"> 
</form> 

對於一些奇怪的原因,當過我嘗試使用<a href="#"></a>標籤中,寫了一個超鏈接網址總是被轉義,導致數據被破壞。

例子:在我寫test <a href="http://test.com">test url</a> textarea的,POST數據轉儲出array (size=1) 'response' => string 'test <a href=\"http://test.com\">test url</a>' (length=45)

其中在收益高達爲http://example.com/http://test.com

我已經刪除了所有自動加載磁帶機,但仍然得到同樣的錯誤結束。我也嘗試過在全新的CI上安裝,但無法重現。如果我啓用$config['global_xss_filtering'] href結束被刪除,導致'test <a >test url</a>'

+0

我注意到你的視圖叫做tinymce,你確定它不是配置問題嗎? – Zarathuztra

+0

在我的測試腳本中,我甚至沒有使用tinymce,所以問題來自某個核心文件 – Bankzilla

+0

我長期使用CI,並且從未遇到過像您所描述的問題。從內存中只有兩個地方可以讓你過濾。首先檢查global_xss_filtering是否設置爲false,然後使用'$ this-> input-> post(「postVar1」,false)來發布每個post var;'默認情況下,帖子的第二個參數應該已經爲false。 http://ellislab.com/codeigniter/user-guide/libraries/input.html瞭解更多關於輸入類的信息。此外,它可能值得測試JS/HTML前端,因爲您正在傾銷$ _POST,這不受CI的影響。祝你好運! – mic

回答

0

這可能不會影響其他人。使用代碼點火器,我也運行一個集成的Wordpress,其中在根index.php我包括wp-load.php文件。出於某種原因Wordpress正在修改所有發佈數據。刪除WordPress的負載修復了這個問題。

解決此問題的方法是在wp-settings.php中調用wp_magic_quotes();修改全局POST和GET數據。評論這一點,你的問題就會消失。

希望這有助於未來的人,這是一個奇怪的事情運行兩個結合,所以我懷疑它。