我正在Monodroid / MonoTouch上制作跨平台应用程序,我的应用程序应与服务器端部件联系以从中获取数据。数据是敏感的,是应用的基础。
我如何保护它以限制服务器端对其他人/应用程序的使用,假设人们可以获得正确的请求语法,或者如果我使用密钥对我的查询进行编码,他们可以通过调试获得该密钥。
答案 0 :(得分:3)
您的数据传输需要机密性,例如使用SSL / TLS,比如HTTPS,但仅凭这一点还不够。默认情况下,这意味着客户端可以确保它信任服务器,而不是服务器可以信任客户端(并且不包括调试情况)。
因此,您还需要身份验证。这几乎与拥有 secret 密钥相同,只是它需要用户(或您信任的实体),而不是硬编码进入应用程序本身(不可信任)。
让用户注册并获取密码(或将用户令牌保存到设备存储中)是启动此操作的一种方法。它将使用您的数据保护您的其他人。
您可以通过创建某种用户/设备关联来增强此功能,以便无法在多个设备之间共享用户密钥 ...这可能会限制使用替代方案的可能性(不受信任) )由相同(可信)用户的应用,例如在另一台设备上。