运行效果如下:
1、正常注册一个账户 xiaobai 暗码 xiaobai ,注册乐成
2、利用账号 xiaobai 暗码 xiaobai ,确认可以登录
3、利用账号 xiaobai 暗码 ' OR '1'='1 确认可以通过SQL注入的方式登录
4、输入任意账号(未注册用户) 暗码 ' OR '1'='1 也可以登录。
解决方法:
1、利用bindValue 可以防止SQL注入。
题目代码如下: - QString sql=QString("select * from user where username='%1' and password='%2'")
- .arg(username).arg(password);
- //创建执行语句对象
- QSqlQuery query(sql);
- //判断执行结果
- if(!query.next())
- {
- qDebug()<<"Login error";
- QMessageBox::information(this,"登录认证","登录失败,账户或者密码错误");
- }
- else
- {
- qDebug()<<"Login success";
- QMessageBox::information(this,"登录认证","登录成功");
- QWidget *w = new QWidget;
- w->show();
- this->close();
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |