<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 安全類 安全類包含了一些方法,用于安全的處理輸入數據,幫助你創建一個安全的應用。 * [XSS 過濾](http://codeigniter.org.cn/user_guide/libraries/security.html#xss) * [跨站請求偽造(CSRF)](http://codeigniter.org.cn/user_guide/libraries/security.html#csrf) * [類參考](http://codeigniter.org.cn/user_guide/libraries/security.html#id2) ## [XSS 過濾](http://codeigniter.org.cn/user_guide/libraries/security.html#id3) CodeIgniter 自帶了一個 XSS 過濾器來防御攻擊,它可以設置為自動運行過濾 所有遇到的 POST 和 COOKIE 數據,也可以針對某一條數據進行過濾。默認情況下 它不是全局運行的,因為它會有相當的開銷,況且你并不是在所有地方都需要它。 XSS 過濾器會查找那些常被用來觸發 JavaScript 腳本或者其他類型的企圖劫持 Cookie 或者其它惡意行為的代碼。如果發現任何不允許的內容,它將把那些內容 轉換為字符實體,以確保安全。 注意:這個函數只應該用來處理那些提交過來的數據,它不適合在一般情況下使用, 因為它的執行會有相當大的開銷。 使用 XSS 過濾器過濾數據可以使用?xss_clean()?方法: ~~~ $data = $this->security->xss_clean($data); ~~~ 它還有一個可選的第二個參數 is_image ,允許此函數對圖片進行檢測以發現那些潛在的 XSS 攻擊, 這對于保證文件上傳的安全非常有用。當此參數被設置為 TRUE 時, 函數的返回值將是一個布爾值,而不是一個修改過的字符串。如果圖片是安全的則返回 TRUE , 相反, 如果圖片中包含有潛在的、可能會被瀏覽器嘗試運行的惡意信息,函數將返回 FALSE 。 ~~~ if ($this->security->xss_clean($file, TRUE) === FALSE) { // file failed the XSS test } ~~~ ## [跨站請求偽造(CSRF)](http://codeigniter.org.cn/user_guide/libraries/security.html#id4) 打開你的 application/config/config.php 文件,進行如下設置,即可啟用 CSRF 保護: ~~~ $config['csrf_protection'] = TRUE; ~~~ 如果你使用?[表單輔助函數](http://codeigniter.org.cn/user_guide/helpers/form_helper.html)?,form_open()?函數將會自動地在你的表單中插入一個隱藏的 CSRF 字段。如果沒有插入這個字段, 你可以手工調用get_csrf_token_name()?和?get_csrf_hash()?這兩個函數。 ~~~ $csrf = array( 'name' => $this->security->get_csrf_token_name(), 'hash' => $this->security->get_csrf_hash() ); ... <input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" /> ~~~ 令牌(tokens)默認會在每一次提交時重新生成,或者你也可以設置成在 CSRF cookie 的生命周期內一直有效。默認情況下令牌重新生成提供了更嚴格的安全機制,但可能會對 可用性帶來一定的影響,因為令牌很可能會變得失效(譬如使用瀏覽器的返回前進按鈕、 使用多窗口或多標簽頁瀏覽、異步調用等等)。你可以修改下面這個參數來改變這一點。 ~~~ $config['csrf_regenerate'] = TRUE; ~~~ 另外,你可以添加一個 URI 的白名單,跳過 CSRF 保護(例如某個 API 接口希望接受 原始的 POST 數據),將這些 URI 添加到 'csrf_exclude_uris' 配置參數中: ~~~ $config['csrf_exclude_uris'] = array('api/person/add'); ~~~ URI 中也支持使用正則表達式(不區分大小寫): ~~~ $config['csrf_exclude_uris'] = array( 'api/record/[0-9]+', 'api/title/[a-z]+' ); ~~~ ## [類參考](http://codeigniter.org.cn/user_guide/libraries/security.html#id5) classCI_Security xss_clean($str[,?$is_image = FALSE]) 參數: * **$str**?(mixed) -- Input string or an array of strings 返回: XSS-clean data 返回類型: mixed 嘗試移除輸入數據中的 XSS 代碼,并返回過濾后的數據。 如果第二個參數設置為 TRUE ,將檢查圖片中是否含有惡意數據,是的話返回 TRUE ,否則返回 FALSE 。 sanitize_filename($str[,?$relative_path = FALSE]) 參數: * **$str**?(string) -- File name/path * **$relative_path**?(bool) -- Whether to preserve any directories in the file path 返回: Sanitized file name/path 返回類型: string 嘗試對文件名進行凈化,防止目錄遍歷嘗試以及其他的安全威脅,當文件名作為用戶輸入的參數時格外有用。 ~~~ $filename = $this->security->sanitize_filename($this->input->post('filename')); ~~~ 如果允許用戶提交相對路徑,譬如?file/in/some/approved/folder.txt?,你可以將第二個參數?$relative_path?設置為 TRUE 。 ~~~ $filename = $this->security->sanitize_filename($this->input->post('filename'), TRUE); ~~~ get_csrf_token_name() 返回: CSRF token name 返回類型: string 返回 CSRF 的令牌名(token name),也就是?$config['csrf_token_name']?的值。 get_csrf_hash() 返回: CSRF hash 返回類型: string 返回 CSRF 哈希值(hash value),在和?get_csrf_token_name()?函數一起使用時很有用,用于生成表單里的 CSRF 字段 以及發送有效的 AJAX POST 請求。 entity_decode($str[,?$charset = NULL]) 參數: * **$str**?(string) -- Input string * **$charset**?(string) -- Character set of the input string 返回: Entity-decoded string 返回類型: string 該方法和 ENT_COMPAT 模式下的 PHP 原生函數?html_entity_decode()?差不多,只是它除此之外,還會檢測不以分號結尾的 HTML 實體,因為有些瀏覽器允許這樣。 如果沒有設置?$charset?參數,則使用你配置的?$config['charset']?參數作為編碼格式。 get_random_bytes($length) 參數: * **$length**?(int) -- Output length 返回: A binary stream of random bytes or FALSE on failure 返回類型: string 這是一種生成隨機字符串的簡易方法,該方法通過按順序調用?mcrypt_create_iv(),?/dev/urandom?和?openssl_random_pseudo_bytes()?這三個函數,只要有一個函數是可用的,都可以返回隨機字符串。 用于生成 CSRF 和 XSS 的令牌。 注解 輸出并不能保證絕對安全,只是盡量做到更安全。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看