- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚做出了一个令人震惊的发现-部署QML应用程序时,项目中使用的所有“库存” QML组件都以裸QML文件的形式部署,直接在文件系统中可见,甚至没有作为用户隐藏在应用程序qrc二进制文件中。是QML文件。这意味着任何人都可以打开那些人类可读的文件,并写下他需要执行的任何代码。而且,即使从QML,也可以对QObject
派生类型进行大量的自省,您可以向下搜索对象树,分析应用程序结构,遍历对象的方法和属性。恶意黑客的空间很大。您甚至不必挖掘一些低水平而被忽视的漏洞-一切就在这里。
是否有任何安全功能可以防止这种情况发生?是否有可能检查已部署的QML的源代码是否有修改,甚至与校验和一样基本?如果没有,是否有任何手动实施安全性的策略?似乎部署过程已经设定好了,就是这样,没有定制空间吗?
还要注意,从我对this question的调查来看,似乎可以重写QML文件的解析方式,但是即使采用这种费劲的方法,该如何与现有的部署方案堆叠在一起?有没有一种“漂亮”的方法来定制部署过程,尤其是考虑到不同目标平台之间的差异很大时。
问题不是关于保护我的代码免遭窃,而是关于保护Qt的代码免遭篡改。
由于许多人似乎在理解手头的问题上存在问题,所以让我以隐喻的形式来形容,希望可以更容易理解。可以选择所有的锁,但这并不意味着如果您的门没有任何锁,这不是问题。对于不能锁门的安全问题并非没有根据,因为锁不是万无一失的。
是的,所有应用程序都可以被黑客入侵,但是这是否需要二进制程序的逆向工程,发现一个被忽视的低级漏洞以及将其利用到您的恶意目的的方法,或者与打开一个恶意程序一样琐碎,这在世界范围内都不同。文本文件,然后只写您想发生的事情。
这不是典型的,固有的和不可避免的漏洞,这要由开发人员尝试尽可能地减少,这是一个巨大的漏洞,这种情况是Qt针对QML应用程序的部署策略中设计存在的。解决这个问题不仅对开发人员不构成责任,而且Qt的许可方案可能会完全阻碍开发人员这样做。当在框架级别存在不安全并且不允许您解决此问题时,实现安全有点困难。
由于某些原因,人们似乎错过了这种固有的缺乏安全性的逆向工程方面。在黑客开始以用户为目标之前,他必须先开发黑客。这是最不安全的地方。毫无疑问,黑客将拥有对自己计算机的admin / root访问权限,因此,没有任何保护QML源免于写入的方案将起作用。使用QML引擎,可以灵活地解释文本文件,这使黑化应用程序变得非常容易,比利用可执行二进制文件要容易得多。从那时起,还有其他途径来危害用户的系统(并且所有广泛使用的系统都是易受攻击的),但至少从单个应用程序开发人员的角度来看,要指出的是,仅受危害的系统并不会危害用户的数据。在我的应用程序中,因为它是受保护的存储在文件系统中,但是却在应用程序中公开。使QML引擎如此不安全并且容易将任何代码注入到应用程序中-这是这里的大问题。在用户系统上破坏QML文件的容易程度是次要的,并且是次要的问题。最大的问题是QML如何轻松地进行黑客的初步开发。
最后,某些人的工作围绕Qt的偏见是可以理解的,他们轻描淡写的缺陷的“专业责任”也是可以理解的,这可能会妨碍其采用,从而阻碍他们的业务,即使是专业人士,在安全性和安全性方面也极不道德。用户的隐私受到威胁。投资于破坏风险并不是改善产品声誉的最佳方法,这些风险不会仅仅因为您否认这些风险而消失,但是,如果您对产品进行改善,这些风险就会消失。承认风险并致力于解决这些风险,肯定比一时成为头条新闻的潜在高调数据泄漏要少很多尴尬。
最佳答案
With Qt 5.7,Qt的静态构建(使用-static
配置Qt)将导致属于Qt模块的QML文件通过资源系统构建到插件中。例如,考虑Qt Graphical Effects
模块中的relevant change。这是更改前qtbase/qml/QtGraphicalEffects
的目录列表:
Blend.qml
BrightnessContrast.qml
Colorize.qml
ColorOverlay.qml
ConicalGradient.qml
Desaturate.qml
DirectionalBlur.qml
Displace.qml
DropShadow.qml
FastBlur.qml
GammaAdjust.qml
GaussianBlur.qml
Glow.qml
HueSaturation.qml
InnerShadow.qml
LevelAdjust.qml
LinearGradient.qml
MaskedBlur.qml
OpacityMask.qml
private
qmldir
RadialBlur.qml
RadialGradient.qml
RectangularGlow.qml
RecursiveBlur.qml
ThresholdMask.qml
ZoomBlur.qml
private
qmldir
qtgraphicaleffectsplugin.lib
qtgraphicaleffectsplugin.prl
qtgraphicaleffectsplugind.prl
关于qt - QML应用程序和安全性-有吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35096667/
我正在尝试构建一个托管在服务器上的 Blazor 应用程序,起点位于一个 razor 页面内。 类似的东西: 我的问题是: 如果 Razor 页面具有授权属性,所有 blazor 代码都不是通过身份
对tomcat中管道和阀门机制不懂的小伙伴,参考本篇文章 领域 目前可知结构,如图所示,下面继续分析 GenericPrincipal类 LoginConfig类 Authenticator接口 在T
我刚刚开始学习 React 中的授权和身份验证,我在使用 JWT 完成我的第一个简单登录系统后编写了这篇文章,因为大多数人都知道您在浏览器中存储了一个 token ,然后将其与保存的进行比较现在,当验
我正在为grails项目寻找安全插件。 Spring安全核心1.2.7.3看起来很棒,但是似乎已经有将近一年没有开发了。有谁知道是这样吗? 还有其他好的插件吗? 我也正在使用mongodb,想知道sp
我有一个 WCF 服务,它使用具有消息安全性和用户名身份验证的 NetTcpBinding。在此之前,我使用 WsHttpBinding 但我切换到 NetTcp,因为我可以使用回调。 我的服务配置如
我正在考虑使用 cakePHP 构建一个 Web 应用程序。我的问题是我必须自己编写多少安全内容来防止(SQL 注入(inject)等)? cakePHP 自己处理什么安全问题,我必须编写什么代码?
任何人都有关于为安全环境强化/配置 TFS 的信息? 最佳答案 TFS 使用 Windows 身份验证,因此它与您的网络一样安全。我建议您还查看有关加强网络安全的资源。 Team Foundation
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我一直想知道 codeigniter 设置有多安全。因为数据库密码等信息存储在主应用程序文件夹的配置文件中,黑客可以检索到这些信息吗?我知道您可以将应用程序文件夹移动到远离 Web 根目录的位置,但如
在客户端使用 PouchDB 访问远程服务器时要遵循的最佳安全实践是什么? https://pouchdb.com/getting-started.html上的例子使用代码与远程服务器同步: var
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在开发一个网络应用程序,用户可以在其中上传文件并执行它们。我的意思是,他们可以上传 html 文件,然后通过单击,他们可以在我的 Web 应用程序内的 iframe 中执行该文件并查看渲染的 ht
试图澄清 -AsPlainText ConvertTo-SecureString 中的参数小命令: -AsPlainText Specifies a plain text string to conv
我正在玩 coreos 和 digitalocean,我想开始允许我的容器之间进行内部通信。 我已经为所有主机设置了私有(private)网络,现在我想确保某些容器只打开到 localhost 和内部
我们有两台机器: 服务器 客户 服务器正在运行 Clojure + Ring + ...标准 ClojureScript webstack。 客户端 = 某些运行 Chorme/Firefox/Saf
让我们有一个函数 foo 和一个类 Bar: fun foo(key: String): String? { // returns string or null } class Bar(x: St
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
确保只有正确的用户才能在 Sharepoint 2007 中看到 Web 部件的最佳做法是什么? 有人向我建议了安全组和受众。 最佳答案 这取决于您是在谈论 Web 部件的呈现还是从 Web 部件库添
我试图说服一个团队,使用 jQuery JSONP 调用与不受信任的第三方可能是不安全的。我正在使用标准 jQuery 代码: $.ajax({ url:unsecureserver+"?js
我有以下ajax调用,它检查用户是否是付费成员(member),如果是,则相应地运行某些功能。这可行,但我担心安全性。如果有人在控制台中更改此 ajax 代码,强制 #button 成功运行功能而无需
我是一名优秀的程序员,十分优秀!