其实我只是想研究一下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);
} yuzhigang5460 发表于 2016-5-23 17:09
CI并没有使用预编译机制。
CI使用的过滤方式是使用原生的过滤方法:
我查了也没用,那用ci的机制安全吗?好多人说只有预编译机制才安全 hbualong 发表于 2016-7-4 10:51
我查了也没用,那用ci的机制安全吗?好多人说只有预编译机制才安全
防 SQL 注入很简单,就是转义就好了,用不着什么高深的技术。。。 关于怎么防止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]