第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CodeIgniter是否自動阻止SQL注入?

CodeIgniter是否自動阻止SQL注入?

桃花長相依 2019-10-28 11:01:32
我剛剛繼承了一個項目,因為最后一位開發(fā)人員離開了。該項目基于Code Igniter構(gòu)建。我以前從未與Code Igniter合作。我快速瀏覽了一下代碼,并在控制器中看到了數(shù)據(jù)庫調(diào)用,如下所示:$dbResult = $this->db->query("SELECT * FROM users WHERE username = '".$_POST['user_name']."'");或像這樣的電話:$dbResult = $this->db->query("SELECT * FROM users WHERE username = '".$this->input->post('username')."'");代碼點火器是否自動清理這些查詢以防止SQL注入?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

CodeIgniter確實可以避免使用該$this->db->query方法時傳遞的變量。但是僅當您將變量作為綁定傳遞時,這是一個示例:


$dbResult = $this->db->query("SELECT * FROM users WHERE username = ?", array($this->input->post('username')));

還請記住,這$_POST不是首選,$this->input->post因為它所做的是檢查變量是否存在以防止錯誤。


查看完整回答
反對 回復(fù) 2019-10-28
?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

CodeIgniter在其數(shù)據(jù)庫層中提供了一些字符串轉(zhuǎn)義功能。


摘錄自CI手冊:


在將數(shù)據(jù)提交到數(shù)據(jù)庫之前,先對其進行轉(zhuǎn)義是非常好的安全措施。CodeIgniter有三種方法可以幫助您執(zhí)行此操作:


$ this-> db-> escape()此函數(shù)確定數(shù)據(jù)類型,使其只能轉(zhuǎn)義字符串數(shù)據(jù)。它還會自動在數(shù)據(jù)周圍添加單引號,因此您不必:


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

我將發(fā)布另外兩個示例,但是我不想從閱讀手冊中獲得所有樂趣。


查看完整回答
反對 回復(fù) 2019-10-28
?
慕村9548890

TA貢獻1884條經(jīng)驗 獲得超4個贊

不,您發(fā)布的代碼容易受到SQL注入的影響。您需要使用查詢綁定來構(gòu)造SQL查詢。如果您使用的是CI DB庫,則可以使用以下代碼進行編碼(來自用戶指南的示例):


$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";


$this->db->query($sql, array(3, 'live', 'Rick')); 


查看完整回答
反對 回復(fù) 2019-10-28
  • 3 回答
  • 0 關(guān)注
  • 1013 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號