2011-06-05 99 views
1

使用Codeigniter刪除數據庫表中的行最安全的方法是什麼?Codeigniter安全地刪除數據庫條目

我正在使用以下方法。

HTML:檢索用戶提交的鏈接(鏈接標題,網址和說明)。爲每個條目添加Remove鏈接。該鏈接有第三個分段,即來自分機號link_id的分錄ID。

<ul id="user_links"> 
    <?php foreach($query as $row): ?> 

    <li><?php echo $row->link_title; ?></li> 
    <li><?php echo auto_link($row->link_url, 'url', TRUE); ?></li> 
    <li><?php echo $row->link_description; ?></li> 
    <?php echo anchor('profile/remove_link/'.$row->link_id, 'Remove', 'title="Remove link"'); ?> 

    <?php endforeach; ?> 
</ul> 

控制器:

function remove_link() 
    { 
       $link_id = $this->uri->segment(3); 
       $seg = 'user_links'; //used in model for redirecting back to page 
       $this->load->model('Link_model'); 
       $this->Profile_model->link_delete($link_id, $seg); 
    } 

MODEL:

function link_delete($link_id, $seg) 
{ 
    $this->db->where('user_id', $this->tank_auth->get_user_id()); 
    $this->db->where('link_id', $link_id); 
    $this->db->delete('user_links'); 
    redirect("/profile/$seg/");   
} 

這工作,但我擔心的是通過URI段刪除條目是不安全的。我的代碼安全嗎?否則,你有什麼建議?

+0

前一段時間我問了一個類似的問題:http://stackoverflow.com/questions/5930870/removing-content-from-database-security-precautions也許它可以幫助你。 – cabaret 2011-06-05 16:59:06

+0

嗨@cabaret。 Thx爲鏈接。我不知道CSRF攻擊。在研究之後,我發現CSRF保護已添加到Codeigniter v 2.0.0中,所以我不擔心它。 – CyberJunkie 2011-06-05 17:12:59

+0

在config中設置'csrf_protection' TRUE – CyberJunkie 2011-06-05 17:15:57

回答

相關問題