2014-02-16 54 views
0

我正在创建一个应用程序,其想法是应该在付费和免费版本中找到它。使用证书或其他身份验证对web服务进行验证

这两个版本都依赖于后台的Web服务,以便对数据库进行查询。这是整个项目的真正内容和核心。

免费版本允许用户进行查询等,而完整版本可以进行查询,但也可以下载部分请求的项目。换句话说,完整版本不会需要完整的互联网访问。

我的问题是,我想尽我所能避免第三方可以创建自己的前端并使用我的web服务/数据库。我想避免将任何用户信息存储在服务器上,这一事实使身份验证和授权变得更加复杂。

我一直在寻找解决方案的论坛,因为我们正在编写2014年,可能会有一些建议比我发现的更好,其中大部分都包含用户名或某种类型的标记。

我现在看到的唯一解决方案是使用证书在应用程序和服务器中使用以验证和授权。也许甚至可以通过为应用程序和服务器每个月创建一个新证书来扩展它。

现在我可以自由地用我选择的任何语言和框架开发服务器端解决方案。

有没有人有一个明确的解决方案,如何避免没有应用程序的人访问Web服务资源?

回答

1

如果没有在服务器上存储信息,没有办法做到这一点。其他任何事情都需要你信任来自你没有物理控制的客户端的数据,这是一个安全错误。

现在如果您想要90%的解决方案,您可以使用https访问您的服务器并在每个请求中发送密钥。密钥将是随机的128位或256位数字。使用不同的付费和免费。如果他们没有传送正确的号码,请发送错误代码而不是真实的数据。

现在任何真正关心的人都可以对此进行逆向工程并破坏您的代码,因为身份验证数据是客​​户端。但实际上只有少数人会关心,即使你的应用程序变得足够大以至于不在意。

+0

至少它值得一试!我完全认为它不是银子弹......但是,当试图获得信息时,人们至少应该有一些有点挑战。 –

相关问题