如何防止数据抓取有价值的数据Web服务?

我对windows商店应用程序有个好主意。 我想制作这个应用程序。 然而,它需要一个庞大而有价值的数据库,我需要创建一个服务,以便人们不能轻易窃取它。 我的想法可能是在Azure上托管移动服务(我从未尝试过)并创建一个.net Web API项目来接收请求并将Json像糖果一样用于Windows 8 mvvmclient。 然而,我不想要的是有人从应用程序到服务来回嗅探我的流量,并弄清楚如何使用我的应用程序和服务获取/发布数据,然后设置他们自己的应用程序/网站以使用我的带宽显示此数据赚钱。

如何保护我的app-to-db数据访问权限,以便不能对我进行逆向工程。

这也是开发像这样的高容量Windows 8应用程序的最佳设置吗? 你有更好的建议吗?

我知道我可以使用SSL等来加密来往的流量。 我想要保护的是使用Firebug或Fiddler来确定可以发布哪些参数以获取特定记录的人。 然后创建自己的网站,只使用我的服务作为终点,并虹吸我的数据,并饶恕我的带宽。 即。 只是使用firebug,我知道我可以使用https://www.google.com/search?q=dallas在Google上搜索dallas这个词。 即使我加密页面,他们也可以在浏览器中看到这么多。 因此,如果某人在他们自己的应用程序中执行相同的get / post,他们将使用我的东西获得相同的记录。

您可以做的最直接的事情是使用OAuth等设置为您的用户设置身份validation。 这样您就可以确保以匿名方式与您的服务进行通信。

对您的请求进行身份validation后,您可以对那些不会影响普通用户的请求进行控制。 您可以对限制或限制请求或任何数量的策略进行评级,以便在抽取大部分数据集时花费非常昂贵的时间。

例如,当您发现大量用户从单个IP地址进行群集时,您可以开始阻止请求。 您可以对每个用户设置合理的限制(例如每分钟10个API调用,结果集限制为50)。 你明白了我的想法。

我想我们遇到了同样的担忧。 我正在开发一个Windows 8应用程序,它正在联系构建在Windows Azure Web站点之上的Web服务。 我不希望坏人通过像Fiddler这样的工具拦截流量来向我的服务发出一些虚假请求。

我在邮件组中问了这个问题并得到了提示。 我从未尝试过,只是为了您的信息。 如果您的应用程序需要用户登录,那么用户的密码是数据/流量保护的良好种子。 您可以使用密码生成密钥对,对请求进行签名并将其发送到服务器以及公钥。 然后在服务器端,它可以通过公钥validation签名。

使用HTTPS是另一种方法。 但是如你所知,即使是HTTPS,坏人也可以通过Fiddler了解实际数据。

我认为使用证书可能是另一种解决方案。 但我没有找到有关如何从客户机器安装和选择证书的相关文档。

HTH

只是通过HTTPS服务,然后他们无法嗅探它。