使用Codeigniter删除数据库表中的行最安全的方法是什么?
我使用以下方法。
HTML:检索用户提交的链接(链接标题,网址和说明)。为每个条目添加Remove
链接。该链接具有第三个段,它是来自db 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 :(得分:2)
您可以使用带有CSRF保护的表单助手和POST请求代替url方法:http://codeigniter.com/user_guide/libraries/security.html 或者你的链接方法,但添加一些代码: 1清理uri段, 2添加一个描述在歌舞表演链接中的标记