成免费的crm,久久国产精品新农夫导航新妓网,恋夜秀场全部视频安卓手机,女校花强奷在线播放A级

CodeIgniter 安全

codeigniter 安全

xss 預防

xss 意味著跨站點腳本。 codeigniter 帶有 xss 過濾安全性。此過濾器將阻止任何惡意 javascript 代碼或任何其他試圖劫持 cookie 并進行惡意活動的代碼。要通過 xss 過濾器過濾數據,請使用 xss_clean() 方法,如下所示。

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

您應該僅在提交數據時使用此功能。可選的第二個布爾參數也可用于檢查圖像文件是否存在 xss 攻擊。這對于文件上傳工具很有用。如果它的值為真,則表示圖像是安全的,否則不安全。

 

sql 注入預防

sql 注入是對數據庫查詢的攻擊。在 php 中,我們使用 mysql_real_escape_string() 函數和其他技術來防止這種情況發生,但 codeigniter 提供了內置函數和庫來防止這種情況發生。

我們可以通過以下三種方式在 codeigniter 中防止 sql 注入:

  • 轉義查詢
  • 查詢出價
  • 活動記錄類

 

轉義查詢

   $username = $this--->input->post('username');
   $query = 'select * from subscribers_tbl where user_name = '.
      $this->db->escape($email);
   $this->db->query($query);
?>

$this->db->e??scape() 函數自動在數據周圍添加單引號并確定數據類型,以便它只能轉義字符串數據。

 

查詢競價

   $sql = "select * from some_table where id = ? and status = ? and author = ?";
   $this--->db->query($sql, array(3, 'live', 'rick'));
?>

在上面的例子中,問號(?) 將被 query() 函數的第二個參數中的數組替換。以這種方式構建查詢的主要優點是值會自動轉義,從而產生安全查詢。 codeigniter 引擎會自動為您執行此操作,因此您無需記住它。

 

活動記錄類

   $this--->db->get_where('subscribers_tbl',array
      ('status'=> active','email' => 'info@arjun.net.in'));
?>

使用活動記錄,查詢語法由每個數據庫適配器生成。它還允許更安全的查詢,因為值會自動轉義。

 

隱藏 php 錯誤

在生產環境中,我們通常不希望向用戶顯示任何錯誤消息。如果為了調試目的在開發環境中啟用它是好的。這些錯誤消息可能包含一些信息,出于安全原因,我們不應向站點用戶顯示這些信息。

有三個與錯誤相關的 codeigniter 文件。

 

php 錯誤報告級別

不同的環境需要不同級別的錯誤報告。默認情況下,開發將顯示錯誤,但測試和實時將隱藏它們。 codeigniter 的根目錄中有一個名為 index.php 的文件,用于此目的。如果我們將零作為參數傳遞給 error_reporting() 函數,那么這將隱藏所有錯誤。

 

數據庫錯誤

即使您關閉了 php 錯誤,mysql 錯誤仍然存??在。您可以在 application/config/database.php 中關閉此功能。將 $db 數組中的 db_debug 選項設置為 false,如下所示。

$db['default']['db_debug'] = false;

 

錯誤日志

另一種方法是將錯誤傳輸到日志文件。因此,它不會顯示給網站上的用戶。只需在 application/cofig/config.php 文件中將 $config 數組中的 log_threshold 值設置為 1,如下所示。

$config['log_threshold'] = 1;

 

csrf 預防

csrf 代表跨站請求偽造。您可以通過在 application/config/config.php 文件中啟用它來防止這種攻擊,如下所示。

$config['csrf_protection'] = true;

當您使用 form_open() 函數創建表單時,它會自動插入一個 csrf 作為隱藏字段。您還可以使用 get_csrf_token_name() 和 get_csrf_hash() 函數手動添加 csrf。 get_csrf_token_name() 函數將返回 csrf 的名稱, get_csrf_hash() 將返回 csrf 的哈希值。

csrf 令牌可以在每次提交時重新生成,也可以在 csrf cookie 的整個生命周期中保持不變。通過設置 true 值,配置數組中的鍵為 ‘csrf_regenerate’ 將重新生成令牌,如下所示。

$config['csrf_regenerate'] = true;

您還可以通過使用密鑰 ‘csrf_exclude_uris’ 在配置數組中進行設置來將來自 csrf 保護的 url 列入白名單,如下所示。您也可以使用正則表達式。

$config['csrf_exclude_uris'] = array('api/person/add');

 

密碼處理

許多開發人員不知道如何在 web 應用程序中處理密碼,這可能就是為什么許多黑客發現入侵系統如此容易的原因。處理密碼時應牢記以下幾點:

  • 請勿以純文本格式存儲密碼。
  • 始終對您的密碼進行哈希處理。
  • 請勿使用 base64 或類似編碼來存儲密碼。
  • 請勿使用弱或損壞的哈希算法,例如 md5 或 sha1、僅使用強密碼散列算法,如 bcrypt,它用于 php 自己的密碼散列函數。
  • 切勿以純文本格式顯示或發送密碼。
  • 不要對用戶的密碼設置不必要的限制。
相關文章