在我的项目中,我使用 $this->input->(get|post) 将数据传递给模型。在模型中,我总是使用活动记录。这足以防止 sql 注入吗?
不,它不是。编辑:是的...没有看到您对使用活动记录的评论。您需要使用 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);
Run Code Online (Sandbox Code Playgroud)
CodeIgniter 将识别您的变量是什么类型的数据,并相应地包装它。也就是说,如果它是一个字符串,它将在 SQL 中放置'并'围绕转义值,这是确保用户无法注入任何恶意内容所需要的。
| 归档时间: |
|
| 查看次数: |
5808 次 |
| 最近记录: |