ci是怎么样防sql注入的
ci里面怎么样写才能调用pdo的预处理机制防止sql注入?新手求助 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);
} 用 CI 的 Query Builder 就可以防 SQL 注入,不用 PDO 的预处理机制。
其实防 SQL 注入很简单,做好转义就行了,最重要的其实不是技术,而是安全意识。 抢个沙发,,坐等大神解答 http://codeigniter.org.cn/user_guide/libraries/input.html
$this->input->post(array('field1', 'field2'), TRUE); smartweb 发表于 2016-5-19 12:03
http://codeigniter.org.cn/user_guide/libraries/input.html
$this->input->post(array('field1', 'field ...
这是xss攻击过滤吧,,,,我问的是sql注入,是否实现了pdo预处理机制 hbualong 发表于 2016-5-19 12:54
这是xss攻击过滤吧,,,,我问的是sql注入,是否实现了pdo预处理机制
CI 的 AR 類已提供防 SQL 注入
CI 手冊 - Active Record
至於你提到的 PDO 預處理機制
也許要看源碼才能清楚 Closer 发表于 2016-5-19 14:05
CI 的 AR 類已提供防 SQL 注入
CI 手冊 - Active Record
我查看源码了,没找到用到预处理机制,求大神指点。 Hex 发表于 2016-5-20 14:14
用 CI 的 Query Builder 就可以防 SQL 注入,不用 PDO 的预处理机制。
其实防 SQL 注入很简单,做好转义就 ...
其实我只是想研究一下ci的防sql注入机制,,看看怎么写是安全的,怎么样有漏洞 主动防止注入也就是做好过滤 什么的, hbualong 发表于 2016-5-23 10:32
其实我只是想研究一下ci的防sql注入机制,,看看怎么写是安全的,怎么样有漏洞 ...
简单说就是用 Query Builder 就是安全的。
页:
[1]
2