在 CodeIgniter 中防止 SQL 注入的最佳方法是啥 [重复]

Posted

技术标签:

【中文标题】在 CodeIgniter 中防止 SQL 注入的最佳方法是啥 [重复]【英文标题】:What are the best ways to prevent SQLInjection in CodeIgniter [duplicate]在 CodeIgniter 中防止 SQL 注入的最佳方法是什么 [重复] 【发布时间】:2015-08-08 06:58:39 【问题描述】:

我是 codeigniter 框架的新手,我提出了一些疑问,我的问题是什么是保证我的查询安全的最佳方法。我应该使用mysql_real_escape_string 还是有更好的方法。 我使用以下代码进行插入:

    function createCustomer($data)
    $this->firstname    = $data['firstname'];
    $this->lastname     = $data['surname1'].' '.$data['surname2'];
    $this->address      = $data['adres'];
    $this->zipcode      = $data['zipcode'];
    $this->mail         = $data['mail'];
    $this->phonenumber  = $data['phonenumber'];

    $this->db->insert('Klant',$this);

    //Check if the change was succesfull
    return ($this->db->affected_rows() != 1) ? false : true;

获取的代码如下:

    function getUserByName($firstname, $lastname)
       $query = $this->db->get_where('Customer', array('firstname' => $firstname, 'lastname' => $lastname));
    return $query->result();

防止 sql 注入的最佳方法是什么?欢迎任何提示。

【问题讨论】:

***.com/questions/1615792/… 不,你不要使用 mysql_*() 函数。它们已过时且已弃用。 我错过了那个问题,我现在应该阅读它,谢谢你的链接。我会记住这一点 框架已经内置了。 【参考方案1】:

最好的办法是 打开文件 config.php 文件位置应用程序/配置

使以下代码为真

  |--------------------------------------------------------------------------
  | Global XSS Filtering
  |--------------------------------------------------------------------------
  |
  | Determines whether the XSS filter is always active when GET, POST or
  | COOKIE data is encountered
  |
 */
$config['global_xss_filtering'] = FALSE;

  |--------------------------------------------------------------------------
  | Global XSS Filtering
  |--------------------------------------------------------------------------
  |
  | Determines whether the XSS filter is always active when GET, POST or
  | COOKIE data is encountered
  |
 */
$config['global_xss_filtering'] = TRUE;

您无需再为防止 sql 注入和跨站点脚本执行任何操作。

【讨论】:

这是一个快速修复!不需要清理我的查询吗? 注意:global_xss_filtering 设置已在 CodeIgniter 版本 3 中弃用 既然他们不推荐使用它,我不应该使用它吗?你还有什么推荐的吗? 这对防止 SQL 注入没有任何作用。答案是完全错误的。

以上是关于在 CodeIgniter 中防止 SQL 注入的最佳方法是啥 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我如何防止使用codeigniter进行sql注入[重复]

codeigniter 或 php 的 sql 注入漏洞

codeigniter 查询生成器和活动记录 sql 注入

如何避免codeigniter中的sql注入

codeigniter 中的安全性

MyBatis怎么防止SQL注入