在codeigniter中防止SQL注入

时间:2010-10-12 18:33:23

标签: codeigniter

在我的项目中,我使用$ this-> input->(get | post)将数据传递给模型。在模型中,我总是使用活动记录。 这足以阻止sql注入吗?

1 个答案:

答案 0 :(得分:4)

不,它不是修改:是的......没有看到您对使用有效记录的评论。您需要使用PHP或CodeIgniter的转义函数手动转义输入,或者您应该使用CodeIgniter的查询绑定,或者您可以使用CodeIgniter的Active Record类。我喜欢做查询绑定,因为它a)使我的查询看起来更好; b)确保在MySQL运行之前清理所有输入。

http://ellislab.com/codeigniter/user_guide/database/queries.html

这样的工作原理如下:

$qStr = "SELECT * FROM students WHERE id=?";
$q = $this->db->query($qStr, array($id);

CodeIgniter将识别您的变量是什么类型的数据,并相应地包装它。也就是说,如果它是一个字符串,它会将''放在SQL中的转义值周围,这就是确保用户无法注入恶意内容所需的内容。

相关问题