2012-10-13 40 views

回答

4

沒有,DB->查詢()是不是默認保護的SQL注入攻擊,你有幾個選項。 使用查詢綁定

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick')); 

對於更復雜的奎雷斯,你必須構建查詢,當您去,請使用compile_bind()得到的SQL塊。

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$safe_sql = $this->db->compile_bind($sql, array(3, 'live', 'Rick')); 

或使用逃脫$這個 - > DB->逃生()的參數

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")"; 

它總是首先使用表單驗證,包括像xss_clear東西的最佳實踐, max_length等方式結合上述之一。