C# 如何防止数据刮取有价值的数据web服务?

C# 如何防止数据刮取有价值的数据web服务?,c#,web-services,api,azure,windows-store,C#,Web Services,Api,Azure,Windows Store,我有一个关于windows应用商店应用程序的好主意。我想制作这个应用程序。然而,它需要一个大而有价值的数据库,我需要为它创建一个服务,这样人们就不会轻易地窃取它。 我的想法是可能在Azure上托管一个移动服务(我从未尝试过),然后创建一个.NETWebAPI项目来接收请求,并向Windows8MVVMClient发送类似Json的糖果。然而,我不希望有人在我的应用程序和服务之间来回嗅探我的流量,找出如何使用我的应用程序和服务获取/发布数据,然后建立自己的应用程序/网站,使用我的带宽来显示这些数据

我有一个关于windows应用商店应用程序的好主意。我想制作这个应用程序。然而,它需要一个大而有价值的数据库,我需要为它创建一个服务,这样人们就不会轻易地窃取它。 我的想法是可能在Azure上托管一个移动服务(我从未尝试过),然后创建一个.NETWebAPI项目来接收请求,并向Windows8MVVMClient发送类似Json的糖果。然而,我不希望有人在我的应用程序和服务之间来回嗅探我的流量,找出如何使用我的应用程序和服务获取/发布数据,然后建立自己的应用程序/网站,使用我的带宽来显示这些数据,从而为他们赚钱

我如何保护我的应用程序到数据库的数据访问,使其不能在我身上反向工程

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


我知道我可以使用SSL等来加密进出的流量。我试图保护的是有人使用Firebug或Fiddler来找出可以发布哪些参数以获取特定记录。然后创建他们自己的网站,简单地使用我的服务作为终点,虹吸我的数据并占用我的带宽。我知道我可以用firebug在谷歌上搜索dallas这个词。即使我加密了页面,他们也能在浏览器中看到这么多。因此,如果有人在他们自己的应用程序中执行相同的get/post,他们将使用我的东西获得相同的记录。

您可以做的最直接的事情是使用类似的方式为您的用户设置身份验证。这将允许您确保不会以匿名方式与您的服务进行通信

一旦您对请求进行了身份验证,您就可以对那些不会影响正常用户的请求进行控制。您可以对请求进行分级、限制或限制,或者采用任何数量的策略,以使从数据集中抽取大部分数据非常耗时


例如,当您注意到大量用户从单个IP地址群集时,可以开始阻止请求。您可以对每个用户设置合理的限制(比如每分钟10次API调用,结果集限制为50次)。我相信你会明白的。

你能做的最直接的事情就是使用类似的方法为你的用户设置身份验证。这将允许您确保不会以匿名方式与您的服务进行通信

一旦您对请求进行了身份验证,您就可以对那些不会影响正常用户的请求进行控制。您可以对请求进行分级、限制或限制,或者采用任何数量的策略,以使从数据集中抽取大部分数据非常耗时


例如,当您注意到大量用户从单个IP地址群集时,可以开始阻止请求。您可以对每个用户设置合理的限制(比如每分钟10次API调用,结果集限制为50次)。我相信你会明白的。

只要通过HTTPS提供,他们就无法嗅到

只要通过HTTPS提供,他们就无法嗅到

我想我们遇到了同样的问题。我正在开发一个Windows8应用程序,它正在联系一个建立在WindowsAzure网站之上的web服务。我不希望坏人通过一些工具(如Fiddler)拦截流量,从而向我的服务发出一些虚假请求

我在一个邮件组里问了这个问题,得到了一个提示。我从来没有试过,只是想告诉你。如果应用程序需要用户登录,那么用户的密码是数据/流量保护的良好种子。您可以使用密码生成密钥对,对请求进行签名并将其与公钥一起发送到服务器。然后在服务器端,它可以通过公钥验证签名

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

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


我想我们遇到了同样的问题。我正在开发一个Windows8应用程序,它正在联系一个建立在WindowsAzure网站之上的web服务。我不希望坏人通过一些工具(如Fiddler)拦截流量,从而向我的服务发出一些虚假请求

我在一个邮件组里问了这个问题,得到了一个提示。我从来没有试过,只是想告诉你。如果应用程序需要用户登录,那么用户的密码是数据/流量保护的良好种子。您可以使用密码生成密钥对,对请求进行签名并将其与公钥一起发送到服务器。然后在服务器端,它可以通过公钥验证签名

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

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


HTH

我认为他们总是能够嗅到计算机中进出的网络流量;有这样的计划。我认为你要做的是限制请求的速率,也许还要对请求进行加密。我认为他们总是能够嗅到计算机进出的网络流量;有这样的计划。我想你要做的是对请求进行速率限制,或者对请求进行加密。我考虑过限制,但数据的访问本质上是非常动态的,可能是10次快速呼叫或1次呼叫等。。我不确定。我希望得到某种令牌传递或类似API密钥的东西。我喜欢OAuth的想法…我考虑了一些限制,但数据的访问本质上是非常动态的,可能是10个快速调用或1个单一调用等。。我不确定。我希望得到某种令牌传递或类似API密钥的东西。