安卓:安全问题:classes.dex中公开的WebService名称可在文件中看到

4

我对apk文件的安全性不确定,因此提出这个问题。

我们有一个应用程序,它从公开的WebService获取结果。然而,当我们尝试打开使用winrar打开.apk文件中的classes.dex文件时,其中的webservice名称和soap操作是可见的。如果有人掌握了apk文件,则可以轻松访问公开的webservice url,这可能会带来潜在的问题。

看起来像:

handleMessage handler hasError hello ht _http:MY WEBSERIVCE NAME
uhttp:MY SOAP Action Name

如何正确地从公开的 URL 获取详细信息?如果我们编写一个包装器来获取我们想要的特定详细信息,那么这也将在 classes.dex 中可见。

是否有一种方法可以保护 .apk 文件不被计算机或 PC 打开。或者是否有一种方法可以在程序中加密 Web 服务名称。

谢谢。


暴露服务的URL会带来什么安全风险?在互联网上所有可访问的内容都是公开的,因此你不应该认为保持服务名称机密能在任何方面提高安全性。通过保持名称机密,你试图应对哪些具体威胁呢? - sarnold
嗨,Sarnold,Web服务的URL和SOAP操作可能会检索机密信息,此外,任何人都可以编写他们自己的应用程序并访问此URL并进行自定义。如何避免在发布到市场后出现应用程序的重复。因此,我们希望只有我们发布的应用程序才能够访问此URL。 - JaiK
3
啊哈,您不应仅基于URL进行身份验证 - 您还应该有每个用户的用户名和密码或使用客户端证书来验证各个用户。 您应该考虑到您的应用程序易于复制和复制,因此将身份验证直接构建到应用程序中永远无法保护您的机密信息。 - sarnold
我完全同意@sarnold的观点,你需要在服务本身上加强安全性。即使你可以防止某人在APK文件中看到URL/等等,但当他们通过WiFi连接时,仍然可能会嗅探本地网络上的数据包,这使得任何试图隐藏URL的尝试都是毫无意义的,如果有人真的想要它的话。 - AC2MO
1个回答

0

实际上并没有。如果您依赖于您的 Web 服务 URL 被隐藏作为安全措施,那么您的 安全做法是错误的

即使代码被加密/混淆,用户也可以使用调试器连接到运行中的应用程序,或者仅使用代理/Wireshark 检查 Web 流量,这个 URL 将会 被发现。这不是保护您的应用程序的方法。

您应该拥有每个用户的登录名和密码,或使用 客户端证书 对个人用户进行身份验证。您应该考虑到您的应用程序 易于复制和复制, 因此直接将身份验证构建到应用程序中将永远无法保护您的机密信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接