我有一个项目正在进行中,我目前正在评估该方法(Native vs Hybrid使用PhoneGap)。关于这个评估过程(主要是大量的谷歌搜索),我很清楚大多数点,除了一个。安全
我读到的很多文章都说混合应用程序与本机应用程序相比安全性较低,但没有详细说明细节。我想明白,它究竟是如何不那么安全。
只有一篇文章比这个主题更深入地说到安全风险可能是:
我希望更详细地理解这个主题。任何人都可以详细说明或者指出一些有用的资源吗?
P.S。:我知道这是一个非焦点/开放式的问题,但我真的被困在这个问题上,而且我已经经历了很多谷歌搜索。主持人,请不要关闭此主题。
答案 0 :(得分:1)
纯粹的猜测(根据iOS和Android上的本机,混合体验),但混合应用程序要求通过将数据绑定到API并使用通用数据格式存储来更加方便地访问数据。这隐含地允许更多的攻击向量,因为您通过混合使数据本身更容易访问。作为本机应用程序,应用程序和相关数据必须以专有格式存储。这意味着必须专门构建攻击者或恶意软件以解决该格式的数据访问问题,而对于混合应用程序,恶意软件或攻击者可以通过公共API或通用数据存储格式访问数据。
此外,无论何时您与服务器“通过线路”进行交互,本机应用程序都使用低级别通信,打开套接字连接,而对于混合应用程序,数据(通常)封装在HTTP之上。这意味着如果攻击者所做的只是嗅探端口80上的流量(而不是像某些奇怪的协议中的端口2030那样嗅探),则攻击者可以克服更少的障碍。使用“混合”通信(通常通过HTTP再次)与服务器交互的最常见方式之一是通过URL。这意味着用户名和密码之类的内容将包含在以明文形式发送的URL中(作为一个愚蠢的,愚蠢的例子):http://www.example.com/control_me?username=foo&password=bar
。
至于应用源代码,这可以追溯到可访问性。根据定义,混合应用程序源代码需要打开。它需要在多个平台上运行,在app app land中,当我们谈论混合应用程序源代码时,我们通常意味着HTML5。这意味着您可以下载和反向设计整个方法(或者只是打开并查看),因为您需要发送源以便它在设备上运行。这是一个本机应用程序,它基本上是编译java或objective-c,很难或不可能“反编译”。