我使用Xamarin开发iOS和Android移动应用程序,但我的问题与该技术无关。
在一些应用程序中,我想调用我正在开发的Web服务。在此Web服务的方法中,执行方法操作需要“login”和“password”。
此“登录”和“密码”未链接到用户,但对整个应用程序是通用的。
所以问题是:如何将这些登录信息安全地保存到应用程序中?
是否有一个众所周知的架构可以解决硬编码信息问题?
答案 0 :(得分:1)
用户可以公开应用程序中存储的任何凭据。对于Android,他们可以完全反编译您的应用并轻松检索它们。
如果与服务器的连接不使用SSL,则可以轻松地从网络中嗅探它们。
说真的,任何想要凭据的人都会得到他们,所以不要担心隐瞒他们。实质上,您有一个公共API。
存在一些陷阱,管理公共API需要额外的时间。
许多公共API仍然按IP地址跟踪并实施tarpits,以简化任何似乎滥用系统的IP地址的请求。这样,来自同一IP地址的合法用户仍然可以继续,尽管速度较慢。
您必须愿意关闭IP地址或IP地址范围,尽管您可能会在滥用者的同时阻止无辜和正直的用户。如果您的申请是免费的,它可能会给您更多的自由,因为没有预期的服务水平和合同,但您可能希望通过法律协议保护自己。
一般来说,如果你的服务很受欢迎,有人想攻击它,那通常是一个好兆头,所以不要过早担心它,但要保持领先。您不希望应用程序失败的原因是因为用户厌倦了在慢速服务器上等待。
您的另一个选择是让用户注册,这样您就可以在发现滥用行为时使用凭据而不是IP地址进行阻止。