2012-09-19 49 views
1

剛剛讀取堆棧溢出this,因此讓我想知道SQL是否可以通過CI中的活動記錄。Codeigniter - 活動記錄是否容易受到SQL注入?

至多在我的項目的地方,用戶註冊和用戶配置文件更新的,我已經做了SQL插入這樣的:

控制器:

$name = $this->input->post('name'); 
$last_name = $this->input->post('last_name'); 
$age = $this->input->post('dob'); 

$user_data = array(
    'name' => $name, 
    'last_name' => $last_name, 
    'age' => $age 
); 

$this->user_model->add_user_function($user_data); 

型號:

function add_user_function($data) 
{ 
    $this->db->insert('user_table',$data); 
    return; 
} 

就像上面SO鏈接中的例子一樣,我的代碼是否適合SQL注入?
如果可能傷害我的系統,可以舉一個特例嗎?如果存在,我該如何防止。

回答

8

CodeIgniter已經爲您提供了2種安全功能。

  1. XSS過濾爲用戶輸入: Input Class有其方法第二個布爾參數,它可以讓你通過XSS過濾器的情況下運行,輸入您不必對全球XSS過濾器。

  2. 對於SQL注入,使用綁定查詢和活動記錄是安全的,因爲框架完成了逃離易受攻擊用戶輸入的所有工作,所以它可以幫助您避免SQL注入。 Active Directory記錄中存在少量漏洞,由用戶報告,但在CodeIgnitor團隊隨後發佈的版本中會迅速修復(EllisLabs)

1

笨是帶削去報價和使用活動記錄時,而不是直接運行SQL查詢..脆弱的腳本,所以對於使用Active記錄沒有wories ...

mysql_real_escape_string和一些檢查,在內部時,其產生的完成SQL查詢運行..

相關問題