2012-07-27 69 views
0

在使用CI時,URI/URI是否在CI中轉義?CodeIgniter URL安全

function foo($url_arg) 
$this->input->get('foo'); 
+0

你可以在這裏閱讀你的問題[Input class](http://codeigniter.com/user_guide/libraries/input.html)。部分**安全篩選** – Ozerich 2012-07-27 13:47:37

回答

3

你的例子包含2種不同類型的輸入 - 一個URI段(傳遞給foo()參數),並命名爲foo一個GET數組項。

URI class包含一個名爲_filter_uri的私有方法,正如您可能已經猜到的那樣,負責過濾URI。首先,它將檢查位於config.php中的$config['permitted_uri_chars']項目,並刪除那裏未定義的任何字符。有關更多信息,

// Convert programatic characters to entities 
$bad = array('$', '(', ')', '%28', '%29'); 
$good = array('$', '(', ')', '(', ')'); 
return str_replace($bad, $good, $str); 

Check out the URI class source:無論什麼樣的定義存在,但是,它也將執行以下操作。

關於GET數組項,如果$config['allow_get_array'](再次,位於config.php)設定爲FALSE,GET數組將被完全破壞。 $this->input->get('foo')默認情況下允許「僅字母數字(和其他幾個字符)」。如果包含TRUE的第二參數,則CodeIgniter將通過其XSS過濾器運行該值。

0

您可以通過打開你的應用程序/配置/ config.php文件,並設置該啓用CSRF保護:

$配置[ 'csrf_protection'] = TRUE;