【问题标题】:secure web service in mobile app [duplicate]移动应用程序中的安全 Web 服务 [重复]
【发布时间】:2014-03-20 05:34:27
【问题描述】:

我在想这个女巫,如何编写更安全的 Web 服务。
例如我的网址是http://test.com/getdata.php 如何确保仅使用我在移动应用程序(如 android 或 ios 或任何想法)中的应用程序访问它。
Web 服务可以是 RESTful 或 SOAP 或任何想法,什么是保护 Web 服务以供我的应用程序使用的最佳方式。
在 android 应用程序中可以很容易地反编译和获取 yse 的 web 服务地址我想防止这种攻击...
如何为此目的实施一种安全的方式!

【问题讨论】:

  • @ZekeSonxx 不,这不是这篇文章的首选,我想确保安全,android 应用程序在反编译方面很弱......

标签: c# php android asp.net web-services


【解决方案1】:

确保 Web 服务仅由特定应用程序使用是很困难的,如果你有一个持久的攻击者,那么这可能是不可能的,因为他们可以在某些模拟器或可以扫描内存并获取的设备上运行你的应用程序信息。

那么,您要保护的价值是什么?您试图保护的价值将决定付出多少努力。

但是,您可以在应用程序的每个版本上放置一个 RSA 公钥,并且必须对某些标记进行加密,以便只有服务器可以解密它,这将有助于确保只有您的应用程序可以调用 Web 服务,但是,即使密钥是在您的应用程序中硬编码的,只要他们足够努力,也可以找到它。

另一种方法是使用零知识证明来验证应用程序是它声称的身份,因此您需要将信息硬编码到程序中,以便它可以查找和回答问题。这应该可行,但我还没有采用这种方法,但可能比仅使用加密更安全。

但是,最简单的方法是让用户拥有一个登录名/密码,如果有人拥有有效的凭据,他们就可以使用您的网络服务,即使他们是从自己的 javascript 页面进行的,如果有人做错了什么,请标记他们凭据被禁止。

如果你想防止反编译,那么你可能想看看这个解释为什么这种方法不可靠:https://stackoverflow.com/a/3122640/67566,这就是为什么我认为尝试保护 web 服务是最好的方法。

如果处理得当,零知识证明应该依赖于依赖于它的编译方式的东西,所以如果有人对应用程序进行逆向工程并重新编译,他们应该会得到足够不同的东西,从而无法通过身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2018-12-09
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多