2

我正在 Monodroid/MonoTouch 上制作一个跨平台应用程序,我的应用程序应该与服务器端部分联系以从中获取数据。数据是敏感的,是应用程序的基础。

我将如何保护它以限制其他人/应用程序使用服务器端,假设人们可以获得正确的请求语法,或者如果我使用密钥对我的查询进行编码,他们可以通过调试获得该密钥。

4

1 回答 1

3

您需要在数据传输中保密,例如使用 SSL/TLS,如 HTTPS,但仅此还不够。默认情况下,这意味着客户端可以确保它信任服务器,而不是服务器可以信任客户端(这不包括您的调试案例)。

因此,您还需要身份验证。这几乎与拥有密钥相同,只是它需要基于用户(或您信任的实体),而不是硬编码到应用程序本身(不可信)。

让用户注册并获取密码(或保存到设备存储中的用户令牌)是开始此操作的一种方法。它将保护您免受其他人使用您的数据。

您可以通过创建某种用户/设备关联来增强这一点,这样用户机密就不能在多个设备之间共享......这可能会限制同一(受信任)用户使用替代(不受信任)应用程序的可能性,例如在不同的设备上。

于 2012-07-25T11:54:34.660 回答