yuzhigang5460 发表于 2016-5-23 17:09:33

hbualong 发表于 2016-5-23 10:32
其实我只是想研究一下ci的防sql注入机制,,看看怎么写是安全的,怎么样有漏洞 ...

CI并没有使用预编译机制。
$mysqli = new mysqli("localhost", "root", "root", 'demo');
        //使用问号替代变量位置
        $sql = "SELECT uid,username FROM user WHERE username=?";
        $stmt = $mysqli->prepare($sql);
        //绑定变量
        $stmt->bind_param("s", $username);
        $stmt->execute();
        $stmt->bind_result($uid, $username);
        while ($stmt->fetch()) {
          $row = array();
          $row['uid'] = $uid;
          $row['username'] = $username;
          $userinfo[] = $row;
        }
CI使用的过滤方式是使用原生的过滤方法:
protected function _escape_str($str)
        {
                return $this->conn_id->real_escape_string($str);
        }

hbualong 发表于 2016-7-4 10:51:20

yuzhigang5460 发表于 2016-5-23 17:09
CI并没有使用预编译机制。

CI使用的过滤方式是使用原生的过滤方法:

我查了也没用,那用ci的机制安全吗?好多人说只有预编译机制才安全

Hex 发表于 2016-7-4 11:14:42

hbualong 发表于 2016-7-4 10:51
我查了也没用,那用ci的机制安全吗?好多人说只有预编译机制才安全

防 SQL 注入很简单,就是转义就好了,用不着什么高深的技术。。。

一战成铭 发表于 2018-3-7 12:36:36

关于怎么防止SQL注入,详情请见
https://codeigniter.org.cn/user_guide/libraries/input.html,http://codeigniter.org.cn/user_guide/database/query_builder.html
且尽量使用CodeIgniter官方内置的函数
还有http://blog.csdn.net/u011721501/article/details/44787963,https://www.cnblogs.com/JeromeZ/p/7890977.html,http://www.cnblogs.com/JeromeZ/p/7890977.html
页: 1 [2]
查看完整版本: ci是怎么样防sql注入的