我看到的问题几乎与这个问题相同,除了我想详细说明的细微但重要的差异。
假设我在 MVC 中有一个控制器和一个操作方法,因此它接受以下 URL 上的请求:http ://example.com/api/myapimethod?data=some-data-here 。
然后,这个 URL 会被 1000 个或更多分布在公众中的客户定期调用。原因是众包。全球的客户端帮助在我的服务器上提供全局缓存,这使得其他客户端更快地获取数据。
现在,如果我偷偷摸摸(我是),我可以进入 Fiddler、Ethereal、Wireshark 或任何其他数据包嗅探工具,并找出程序正在发出哪些请求。
通过弄清楚这一点,我还可以复制它们,并用错误的损坏数据填充服务。
确保在我的 ASP .NET MVC 操作方法中接收到的数据实际上来自桌面客户端应用程序,而不是用户发明的一些错误生成的数据的最佳方法是什么?
由于这一切都是基于众包,如果某些数据被伪造,我的用户能够“投票”,然后如果有足够的选票开始自动清理,这会是一个好主意吗?
我无法使用 SmartAssembly 之类的工具,所以很遗憾我的 .NET 程序是完全可反编译的。我意识到这可能无法以防错的方式完成,但我想知道我的最佳机会在哪里。