Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌入式Qt-WebEngine安全风险_Qt_Security_Qnetworkaccessmanager_Qwebengineview - Fatal编程技术网

嵌入式Qt-WebEngine安全风险

嵌入式Qt-WebEngine安全风险,qt,security,qnetworkaccessmanager,qwebengineview,Qt,Security,Qnetworkaccessmanager,Qwebengineview,在我的QT应用程序中,我需要下载某些数据。此数据受保护,用户需要登录网站下载数据。为了允许用户登录,我使用QWebEngineView显示我们网站的登录页面。用户输入其凭据。这将生成认证所需的cookie。我将生成的cookie存储在QNetworkCookieJar中。然后我创建一个QNetworkAccessManager,并将保存的QNetworkCookieJar添加到QNetworkAccessManager。然后我使用QNetworkAccessManager下载数据。这一切都很好。

在我的QT应用程序中,我需要下载某些数据。此数据受保护,用户需要登录网站下载数据。为了允许用户登录,我使用
QWebEngineView
显示我们网站的登录页面。用户输入其凭据。这将生成认证所需的cookie。我将生成的cookie存储在
QNetworkCookieJar
中。然后我创建一个
QNetworkAccessManager
,并将保存的
QNetworkCookieJar
添加到
QNetworkAccessManager
。然后我使用
QNetworkAccessManager
下载数据。这一切都很好。然而,在我的项目的安全审查中,有人提出了这样的担忧:登录页面在我的应用程序的控制下,因此我可以获得用户凭据(例如,通过观察登录页面上的击键)


所以我的问题是:这种安全风险是真的吗?我可以实际获取用户凭据吗?如果有的话。我必须使用哪些选项来验证用户身份并避免任何安全漏洞?

是的,在Qt应用程序中,您始终可以捕获发送到小部件的任何击键。谷歌浏览器和几乎所有的网络浏览器也是如此。用户在应用程序中输入数据,然后将其传递到网络,并通过导线传递到web服务器

当考虑安全风险时,你总是考虑两件事。潜在的伤害和制作漏洞的可行性。潜在的伤害很高,你无法控制。您可以控制的是创建漏洞利用的可行性。考虑到您(或您的公司)控制代码,您可以很难利用您的应用程序知道凭据这一事实。这将使风险非常低

即使使用硬件加密狗之类的东西也会有问题,因为您必须将数据从加密狗传输到web引擎。这仍然可以提供一种拦截方法

尝试寻找关于软件安全风险分析和缓解的讨论。甚至还有一个关于它的SE站点