我正在开发一个免费的移动应用程序,可以访问Web服务并定期从中下载一些内容。
我不想强迫用户创建帐户来使用此Web服务,并且应该可供此移动应用程序的所有用户使用。
但是,我不希望第三方能够访问该Web服务并重用其提供的数据。换句话说,只有我写的移动应用程序应该能够使用该服务,而不是其他人。
是否有针对此问题的解决方案?
答案 0 :(得分:4)
我想你可以这样做:
1)您的应用尝试首次访问服务器
2)服务器向应用程序发送随机数/代码
3)应用程序详细说明并使用您的秘密方法对其进行转换(它可以将其与密码合并并使用结果生成“哈希”;“哈希”是转换后的编码字符串)
4)应用程序发送散列 [编辑:(以及从服务器获取的原始随机数/代码)< - NO,最好不要将原始和编码的字符串发送到以下内容:if拦截它可能足以让每个人再次发送它以进入服务...更好地将原始字符串保存在服务器的某个地方,并且id等待从你的应用程序END编辑的哈希值再次到服务器
5)服务器使用相同的秘密方法“哈希”原始号码(将其与密码合并并与结果进行“哈希”)并检查它是否等于从您的应用程序获得的密码。 / p>
6)如果它相等......服务器现在知道您的网络服务请求来自您的应用并批准访问它...
换句话说:只是你的移动应用程序和服务器知道如何将随机数转换为“哈希”... 有很多样本来获取字符串的“哈希”,在许多语言中(php,javaScript ...)所以只需在网上搜索...
答案 1 :(得分:1)
听起来您需要握手以确保正确的客户端连接到Web服务。我能想到的最简单的方法是安装一个硬编码/生成的密钥,然后服务器检查连接。
非常类似于CD密钥和现代游戏,它们检查服务器是否有效密钥。