精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

CodeIgniter 安全

codeigniter 安全

xss 預(yù)防

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

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

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

 

sql 注入預(yù)防

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

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

  • 轉(zhuǎn)義查詢
  • 查詢出價
  • 活動記錄類

 

轉(zhuǎn)義查詢

   $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() 函數(shù)自動在數(shù)據(jù)周圍添加單引號并確定數(shù)據(jù)類型,以便它只能轉(zhuǎn)義字符串?dāng)?shù)據(jù)。

 

查詢競價

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

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

 

活動記錄類

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

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

 

隱藏 php 錯誤

在生產(chǎn)環(huán)境中,我們通常不希望向用戶顯示任何錯誤消息。如果為了調(diào)試目的在開發(fā)環(huán)境中啟用它是好的。這些錯誤消息可能包含一些信息,出于安全原因,我們不應(yīng)向站點(diǎn)用戶顯示這些信息。

有三個與錯誤相關(guān)的 codeigniter 文件。

 

php 錯誤報告級別

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

 

數(shù)據(jù)庫錯誤

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

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

 

錯誤日志

另一種方法是將錯誤傳輸?shù)饺罩疚募R虼耍粫@示給網(wǎng)站上的用戶。只需在 application/cofig/config.php 文件中將 $config 數(shù)組中的 log_threshold 值設(shè)置為 1,如下所示。

$config['log_threshold'] = 1;

 

csrf 預(yù)防

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

$config['csrf_protection'] = true;

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

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

$config['csrf_regenerate'] = true;

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

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

 

密碼處理

許多開發(fā)人員不知道如何在 web 應(yīng)用程序中處理密碼,這可能就是為什么許多黑客發(fā)現(xiàn)入侵系統(tǒng)如此容易的原因。處理密碼時應(yīng)牢記以下幾點(diǎn):

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