如何将对 ASHX/WCF 服务的 AJAX 调用锁定到域以停止数据收集

发布于 2024-08-22 13:37:32 字数 331 浏览 4 评论 0原文

是否可以将对 ASHX 或 WCF 服务的访问限制为仅来自您自己的域的 AJAX 调用?

为了提高网站性能,我们要使用完整的 jQuery 和 JavaScript。然而,MS AJAX 4.0 方法通过 ASHX 或 WCF 服务公开我们的零售数据,使竞争对手更容易获取我们的数据。

是的,这是一个公共网站,他们最终可能会收获,我们将实施限制,但我们如何将对这些服务的调用锁定到我们的域?

Windows 应用程序可以直接连接到该服务并且仍然可以收获吗?

看起来像是另一个性能/安全权衡!! 叹息

任何建议都会有帮助。

提前致谢。

Is it possible to restrict the access of an ASHX or WCF service to only AJAX calls from your own domain?

In order to improve site performance, we want to use the full jQuery & MS AJAX 4.0 approach however exposing our retail data via an ASHX or WCF service makes it really easier for competitors to harvest our data.

Yes it is a public website and they could eventually harvest and we will put throttling in place but how can we lock calls to these services to our domain?

Could a windows app and contect directly to the service and still harvest?

Looks like another performance/security tradeoff!! sigh

Any suggestions would be helpful.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

渡你暖光 2024-08-29 13:37:33

你所要求的事情是无法完成的。公共网站上的任何可用数据,无论是从浏览器调用还是通过 AJAX 调用,都可能被抓取。您可以尝试混淆 JavaScript 和数据,或使用验证码,但这些都是可以解决的。限制也只是一个很小的威慑,因为攻击者可以窃取他们的请求,或者使用多个代理。

基本上,一旦你把它放到互联网上,它就是公开的。

What you're asking for can't be done. Any data that's available on your public website, whether it's intended to be called from a browser or via AJAX, can be scraped. You can try obfuscating your Javascript and data, or using a CAPTCHA, but these can be worked around. Throttling also is only a minor deterrent, as an attacker can trickle their requests, or use multiple proxies.

Basically, once you put it on the Internet, it's public.

梦回梦里 2024-08-29 13:37:33

您可以使用加密参数。服务器的当前日期时间将是一个很好的参数。

MyService.ashx?parameter=<加密的日期时间>

在 ashx 中检查参数以查看它是否存在并且日期时间是否为当前,如果没有限制并返回空页面。不过,请留出几秒钟的余量。

这将阻止您的服务直接从收集器调用,但不会阻止您的网站被爬虫收集。

You may use an encrypted parameter. Server's current date time will be a good parameter.

MyService.ashx?parameter=<encrypted date time>

In your ashx check the parameter to see if it is present and date time is current, if not throttle and return an empty page. Allow a few seconds margin though.

This will prevent your service called directly from a harvester but it won't prevent your site being harvested by a crawler.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文