You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Qt QSqlQuery防止SQL注入?求安全变量插入方法

Qt QSqlQuery 防止SQL注入的正确参数化查询方法

你之前直接拼接字符串生成SQL语句的写法完全无法防范SQL注入,属于高危操作——用户输入的内容会被当作SQL语法的一部分执行,攻击者可以构造恶意输入篡改原查询逻辑。

用Qt的QSqlQuery实现安全的参数化查询有两种常用方式:

1. 命名占位符绑定

QSqlQuery query;
query.prepare("UPDATE coins_tb SET VALUE = :value WHERE TOKEN = :token");
query.bindValue(":value", QString::fromStdString(match.str(2)));
query.bindValue(":token", QString::fromStdString(match.str(1)));
query.exec();

2. 位置占位符绑定

QSqlQuery query;
query.prepare("UPDATE coins_tb SET VALUE = ? WHERE TOKEN = ?");
query.addBindValue(QString::fromStdString(match.str(2)));
query.addBindValue(QString::fromStdString(match.str(1)));
query.exec();

这两种方式的核心原理是:Qt会自动对绑定的参数进行转义处理,将变量作为纯数据传递给数据库,而非将其拼接进SQL语句中,从根源上切断了SQL注入的可能性。

内容的提问来源于stack exchange,提问作者sxxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:31:09