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