我使用的是codeigniter,我在单独的公共函数中编写了多个查询。然后我想使用这些查询中的每一个,并在另一个查询中作为字符串调用它们来处理它们。
这就是我的意思
public function first_of_many_queries(){
$query = "
SELECT *
FROM users
WHERE id = $id
AND age = $age
AND gender = $gender
ORDER BY id DESC LIMIT 0, 1
";
return $this->db->escape_str($this->handeling_all_queries($query, 1));
}
public function handeling_all_queries($qry, $type){
$query = $this->db->query($qry);
if ($query->num_rows() > 0){
//doo stuff
}
}
我的问题是
这种做法安全吗?是使用 $this->db->escape_str($this->handeling_all_queries($query, 1))
足以防止sql注入和其他问题?
谢谢
2条答案
按热度按时间7cwmlq891#
是的,一点也不安全。您可以在codeigniter中使用查询绑定。
绑定查询是另一个有用的安全过程;如果您对查询使用绑定,那么codeigniter会自动转义值,您无需手动转义。
dfddblmv2#
不,不安全。使用pdo准备的语句进行安全查询: