CodeIgniter 防止XSS攻擊
阿新 • • 發佈:2017-12-06
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攻擊