纯粹是推测(根据本机、iOS 和 Android 上的混合应用程序的经验),但混合应用程序需要通过将数据绑定到 API 并以通用数据格式存储来更易于访问。这隐含地允许更多的攻击向量,因为您通过混合数据使数据本质上更易于访问。作为本机应用程序,应用程序和相关数据必须以专有格式存储。这意味着必须专门构建攻击者或恶意软件以解决该格式的数据访问问题,而对于混合应用程序,恶意软件或攻击者可以通过通用 API 或通用数据存储格式访问数据。
此外,每当您与服务器“通过网络”交互时,本机应用程序使用低级通信,打开套接字连接,而对于混合应用程序,数据(通常)被封装在 HTTP 之上。这意味着如果攻击者所做的只是嗅探端口 80 上的流量(与某些奇怪协议中的嗅探端口 2030 相比),攻击者需要克服的障碍就会更少。使用“混合”通信(通常再次通过 HTTP)与服务器交互的最常见方法之一是通过 URL。这意味着用户名和密码之类的内容将包含在以明文形式发送的 URL 中(作为一个愚蠢的示例)http://www.example.com/control_me?username=foo&password=bar
:.
至于应用程序源代码,这又回到了可访问性。根据定义,混合应用程序源代码需要开放。它需要在多个平台上运行,在应用程序领域,当我们谈论混合应用程序源代码时,我们通常指的是 HTML5。这意味着您的整个方法可以下载和逆向工程(或只是打开并查看),因为您需要发送源代码才能使其在设备上运行。这与原生应用程序相比,原生应用程序基本上是编译的 java 或 Objective-c,很难或不可能“反编译”。