php - 使用 Codeigniter 查询生成器自定义 where 字符串的安全性/漏洞

标签 php mysql codeigniter sanitization

我正在开发一个 Codeigniter 2 项目,该项目无法升级到 v.3。到目前为止,我在使用查询构建器时遇到了一个难题,尤其是当我需要进行更复杂的查询时。 CI v.3 通过使用 ->group_start() 和 ->group_end() 很好地处理了它,但 CI v.2 没有。 现在,我的困境如下:仅使用自定义 where 查询是否安全?

$this->db->where("name='$name' AND status='boss' OR status='active'");

查询构建器是否对其进行了足够的清理,或者我应该采用额外的清理(第三个参数保留为默认值 - true)?

** 更新 **

我没有准确地写下我需要这个的复杂查询。沿着这个逻辑的某个地方:

A=1 && B=2 && C=3 && (D=10 || E=20 || F=30)

最佳答案

来自文档,https://codeigniter.com/userguide2/database/active_record.html#select

Note: All values passed to this function are escaped automatically, producing safer queries.

我假设的是,如果你正确使用它,而不是像你想的那样直接插入变量。

所以我会这样做(如果我使用 CI :/)

$this->db->where('name', $name);
$this->db->where("(status='boss' OR status='active')", NULL, FALSE);

..丑陋

关于php - 使用 Codeigniter 查询生成器自定义 where 字符串的安全性/漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47411613/

相关文章:

php - 在 Propel 中使用 GROUP_CONCAT (MySQl) 和 WM_CONCAT (Oracle)

php - 如何在 where 条件下比较多个 id

php - codeigniter 多个 OR 查询

php - 如何在 CI Web 应用程序的就绪状态下添加粘性 toast 通知

php - MYSQL 查询未正确显示数据

php - FB Messenger webview X-Frame-Options : Deny ruining webview

python - pymysql使用python将随机数插入列中

python - 在 Django 1.8 中使用 MySQL 连接器的问题

php - 通过sql和codeigniter检索数据

php - IE8 异步文件上传