查看完整版本: [-- 求助下,如何在qt c++环境下防止sql注入 --]

QTCN开发网 -> Qt基础编程 -> 求助下,如何在qt c++环境下防止sql注入 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

whoami12131 2020-01-27 10:07

求助下,如何在qt c++环境下防止sql注入

自己的代码被学安全的学长指出有sql注入漏洞,但是没告诉我如何修复,去网上也查不到c++的相关代码,求各位大佬告知,我的代码是下面的这种[attachment=21260][attachment=21259]

圣域天子 2020-01-29 10:50
你存放sql的文件有被其它程序篡改的风险。
代码本身看不出什么问题

fsu0413 2020-01-29 13:52
你可以想象一下%1里如果有单引号会是什么效果

apud 2020-01-29 15:48
对参数进行转义。

whoami12131 2020-01-30 13:05
圣域天子:你存放sql的文件有被其它程序篡改的风险。
代码本身看不出什么问题 (2020-01-29 10:50) 

大佬,具体怎么做呢?请指点一下吧

whoami12131 2020-01-30 13:06
apud:对参数进行转义。 (2020-01-29 15:48) 

请问具体怎么做呢?我找了好多都是关于java的预编译的,c++这方面的实在找不到

whoami12131 2020-01-30 13:07
fsu0413:你可以想象一下%1里如果有单引号会是什么效果 (2020-01-29 13:52) 

会有sql ‘注入吧,但是具体怎么避免呢?请指点一下吧

apud 2020-01-30 15:21
whoami12131:请问具体怎么做呢?我找了好多都是关于java的预编译的,c++这方面的实在找不到 (2020-01-30 13:06) 

static QString addslashes(QString str){
        str = str.replace("\\","\\\\");
        str = str.replace("\"","\\\"");
        str = str.replace("'","\\'");
        return str;
}
简单点的实现,写一个转义函数,SQL中的变量都转义一下……

apud 2020-01-30 15:24
apud:static QString addslashes(QString str){
        str = str.replace("\\","\\\\");
        str = str.replace("\"","\\\"");
 &nb .. (2020-01-30 15:21) 

这个是mysql中的知识点,和qt没什么大的关系,你可以先注入成功,然后再用该函数处理后看看能不能注入成功,自己动手试验看下是否有效果就知道了……

圣域天子 2020-01-30 17:19
确保文件本身不是公开在外网上,只要文件本身不存在被篡改的可能性,就是安全的。
如果你的学长指的就是这个文件的话,就不是什么大问题,毕竟在文件中存放SQL,是常用的方式。
而且一般SQL注入,指的是网上请求的形式进行的,本地文件都是安全的。
所以你的代码其实是常用的,没什么风险的。

whoami12131 2020-01-30 20:05
圣域天子:确保文件本身不是公开在外网上,只要文件本身不存在被篡改的可能性,就是安全的。
如果你的学长指的就是这个文件的话,就不是什么大问题,毕竟在文件中存放SQL,是常用的方式。
而且一般SQL注入,指的是网上请求的形式进行的,本地文件都是安全的。
所以你的代码其实是常用的,没 .. (2020-01-30 17:19) 

好的,谢谢

whoami12131 2020-01-30 20:05
apud:这个是mysql中的知识点,和qt没什么大的关系,你可以先注入成功,然后再用该函数处理后看看能不能注入成功,自己动手试验看下是否有效果就知道了…… (2020-01-30 15:24) 

好的,谢谢


查看完整版本: [-- 求助下,如何在qt c++环境下防止sql注入 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled