首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在codeigniter中避免sql注入

如何在codeigniter中避免sql注入
EN

Stack Overflow用户
提问于 2011-05-02 20:55:26
回答 7查看 53K关注 0票数 38

在CodeIgniter中,如何避免sql注入?有没有什么方法可以在配置文件中设置来避免sql注入?我使用下面的代码来选择值:

代码语言:javascript
运行
复制
$this->db->query("SELECT * FROM tablename WHERE var='$val1'");

这是用于插入值的:

代码语言:javascript
运行
复制
$this->db->query("INSERT INTO  tablename (`var1`,`var2`) VALUES ('$val1','$val2')");

另一个用于从数据库中插入和选择值的方法是CodeIgniter的insert()get()方法。在使用CodeIgniter的内置函数时,是否有可能进行sql注入

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-02 21:05:39

CodeIgniter的Active Record方法会自动为您避开查询,以防止sql注入。

代码语言:javascript
运行
复制
$this->db->select('*')->from('tablename')->where('var', $val1);
$this->db->get();

代码语言:javascript
运行
复制
$this->db->insert('tablename', array('var1'=>$val1, 'var2'=>$val2));

如果你不想使用活动记录,你可以使用query bindings来防止注入。

代码语言:javascript
运行
复制
$sql = 'SELECT * FROM tablename WHERE var = ?';
$this->db->query($sql, array($val1));

或者,对于插入,可以使用insert_string()方法。

代码语言:javascript
运行
复制
$sql = $this->db->insert_string('tablename', array('var1'=>$val1, 'var2'=>$val2));
$this->db->query($sql);

如果您更喜欢运行自己的查询,也可以使用escape()方法。

代码语言:javascript
运行
复制
$val1 = $this->db->escape($val1);
$this->db->query("SELECT * FROM tablename WHERE var=$val1");
票数 69
EN

Stack Overflow用户

发布于 2011-05-02 21:08:21

您可以使用

代码语言:javascript
运行
复制
$this->db->escape()

方法..

代码语言:javascript
运行
复制
$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($omgomg).")";

此处列出了其他方法。

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

票数 8
EN

Stack Overflow用户

发布于 2011-05-02 21:14:58

您应该尽量避免将查询直接写入字符串,然后将它们传递给查询函数。更好的选择是使用Active Record类,它将为您构建查询并转义值。http://codeigniter.com/user_guide/database/active_record.html

如果您出于某种原因想要避免使用活动记录类,那么您可以查看数据库类的Codeigniter文档,该文档提供了一个转义方法,用于在将值传递给query方法之前对其进行转义。http://www.codeignitor.com/user_guide/database/queries.html

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

https://stackoverflow.com/questions/5857386

复制
相关文章

相似问题

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