首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter 3 SQL注入查询

Codeigniter 3 SQL注入查询
EN

Stack Overflow用户
提问于 2016-05-31 01:28:08
回答 2查看 1K关注 0票数 2

假设$this->input->post('location')持有这样一个数组:

代码语言:javascript
复制
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
)

这个查询"Sql注入“安全吗?

代码语言:javascript
复制
$in  = str_repeat('?,', count($this->input->post('location')) - 1) . '?';
$sql = "SELECT id 
        FROM location
        WHERE id IN ($in)";
$locations = $this->db->query($sql, $this->input->post('location'));

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-31 13:04:05

guide/database/queries.html上看到,是的,这样做是安全的。但你只需要一个“?”

代码应该是这样的:

代码语言:javascript
复制
$sql = "SELECT id 
        FROM location
        WHERE id IN (?)";
$locations = $this->db->query($sql, $this->input->post('location'));
票数 1
EN

Stack Overflow用户

发布于 2016-05-31 10:45:28

我不确定这是否值得回答,但我还是这么做了,是的,正如alex在评论中所说的那样,您的查询是安全的,但我不理解str_repeat的不必要的复杂性--我不确定,但CI中有其他方法可以写出这样的查询:

代码语言:javascript
复制
$query = $this->db
            ->select("id")
            ->from("location")
            ->where_in("id",$this->input->post("location"))
            ->get();

上面的查询也是这样做的。我是忽略了这里的一些东西,还是您只是不知道内置的查询生成器?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37535523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档