php優秀框架codeigniter學習系列——CI_Security類學習

這篇文章主要介紹CI核心框架工具類CI_Security。
安全類包含了一些方法,用於安全的處理輸入數據,幫助你建立一個安全的應用。如下選取類中的重點方法進行說明。php

__construct()


在構造函數中,取出配置中csrf_expire,csrf_token_name,csrf_cookie_name的值,賦給類成員變量。接着,設置$this->_csrf_hash的值。若是cookie中存在csrf_cookie_name變量,則將值賦給$this->_csrf_hash,若是不存在,則利用一個算法生成新的值。html

xss_clean($str, $is_image = FALSE)


該函數對用戶的輸入進行xss的過濾和 清理,若是$is_image設置爲true,還能對圖片進行過濾。細節我沒有多看,固然它用到了不少過濾條件和方法。
若是你想過濾帶有html標籤的輸入,能夠使用 common.php中的html_escape()函數,參考算法

CSRF驗證和防護


基本原理,是運用POST中的名爲csrf_token_name表單值發送服務器,與cookie中的csrf_cookie_name(以前已經設置過的)值進行比較, 若是相同則經過,若是不一樣則說明是csrf攻擊。它利用的是cookie值通常不能被竊取的原理。能夠參考這篇文章https://codeigniter.org.cn/forums/thread-19849-1-1.html,講解的很是詳細。安全

相關文章
相關標籤/搜索