Qt登录界面,演示SQL注入攻击
·
运行效果如下:
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();
}
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)