CodeIgniter 使用手冊版本 2.2.0


安全性

本頁描述一些有關網站安全的 "最佳實證" ,同時包含了CodeIgniter 的內部安全機制細節。

URI 安全性

CodeIgniter 對於哪些字元允許當作 URI 字串有相當嚴格的考量,以盡量減少惡意資料進入應用程式的可能性。URIs 只能包含下列字元:

Register_globals

除了在 $_GET, $_POST, 以及 $_COOKIE 陣列中找到的變數,在系統初始化時,所有的整體變數都會 unset ,這個 unsetting 常式效用等同於 register_globals = off 選項設定。

error_reporting

在上線產品網站環境中,只要將 error_reporting 設定為 0 就可以停止所有錯誤輸出。關閉錯誤輸出將會隱藏掉淺在的錯誤資訊。

在 index.php 檔案 設定 CodeIgniter 的 ENVIRONMENT 變數值為 'production',系統環境將會關閉錯誤輸出。如果在開發環境之下,建議將 ENVIRONMENT 設定為 'development',如果想要瞭解更多不同的環境變數值,請參考 處理多個環境 線上文件。

magic_quotes_runtime

magic_quotes_runtime 設定指引會在系統初始化時關閉,所以當你從資料庫取得資料時不必移除 slashes。

最佳實證

在接受任何資料進入應用程式前,無論是表單提交來的POST資料、COOKIE資料、URI資料、XML-RPC資料甚至是從SERVER陣列來的資料,我們都鼓勵你盡量實踐以下三步驟的進程:

  1. 把資料當作已被污染來過濾。
  2. 做好資料驗證以保證它符合正確的型別、長度、大小等。(有時這個步驟可以取代步驟一)
  3. 在把資料送進你的資料庫前跳脫(escape)資料。

CodeIgniter提供下列的函數來協助你進行這個過程: