1. 程式人生 > >CodeIgniter 防止XSS攻擊

CodeIgniter 防止XSS攻擊

rip file input 默認 嘗試 應該 而是 data scrip

CodeIgniter 包含了跨站腳本攻擊的防禦機制,它可以自動地對所有POST以及COOKIE數據進行過濾,或者您也可以針對單個項目來運行它。默認情況下,它 不會 全局運行,因為這樣也需要一些執行開銷,況且您也不一定在所有情況下都用得到它.

XSS過濾器會查找那些常被用來觸發JavaScript或者其他類型的企圖劫持cookie或進行其它惡意行為的代碼. 如果發現任何不允許的內容,它將把那些內容轉換為字符實體,以確保安全.

註意: 此函數只應該用來處理那些提交過來的數據. 它不適合在常規運行時使用,因為它執行時的開銷也是不容忽視的.

1、要使用XSS過濾器對數據進行過濾,請使用此函數:

$this->security->xss_clean()

使用示例:

$data = $this->security->xss_clean($data);

2、如果你希望過濾器能自動過濾所有被訪問到的POST或者COOKIE數據,請打開你的 application/config/config.php 文件,進行如下設置即可啟用自動過濾:

$config[‘global_xss_filtering‘] = TRUE;

說明: 如果你使用表單驗證類,同樣也有XSS過濾的選項.

如果開啟了全局xss過濾,則獲取表單數據時可以直接使用

$this->input->post(‘name‘)

如果,沒有開啟全局設置,只是希望對單一的數據進行xss過濾,我們可以這樣使用:

$this->input->post(‘name‘,TRUE)

3、第二個可選的參數, is_image, 允許此函數對圖片進行檢測以發現那些潛在的 XSS 攻擊, 這對於保證文件上傳的安全非常有用. 當此參數被設置為 TRUE 時, 此函數的返回值不是一個修改過的字符串而是一個布爾值, 如果圖片是安全的則返回 TRUE, 相反, 如果圖片中包含有潛在的、可能會被瀏覽器嘗試運行的惡意信息, 函數將返回FALSE.

if ($this->security->xss_clean($file, TRUE) === FALSE)
{
    // file failed the XSS test
}

CodeIgniter 防止XSS攻擊