时间:2021-07-01 10:21:17 帮助过:4人阅读
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "select * from user where username='{$username}' and password='{$password}' ";
$this->db->query($sql);这样很容易在 username参数加入 ‘ or 1=1 -- 注入,虽然这只是示例,但现在很多使用框架,一不注意,最终组合成的语句也是类似这样的。这里不说输入参数过滤、参数绑定,语法分析等常用办法去应对SQL注入,我们可以转变一下判断方法:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "select * from user where username='{$username}' ";
$data = $this->db->query($sql);
......
if($data['password'] == $password){
//密码OK
}else{
//密码错误
}
这样先查到数据,再用php本身来判断是否匹配密码,是不是解决了问题了?
相关推荐:
推荐10个防止sql注入方法
以上就是PHP和Mysql登录功能防止SQL注入的详细内容,更多请关注Gxl网其它相关文章!