0

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

为了提高网站性能,我们希望使用完整的 jQuery 和 MS AJAX 4.0 方法,但是通过 ASHX 或 WCF 服务公开我们的零售数据会使竞争对手更容易收集我们的数据。

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

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

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

任何的意见都将会有帮助。

提前致谢。

4

2 回答 2

1

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.

于 2010-02-18T01:25:43.080 回答
0

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

MyService.ashx?parameter=<encrypted date time>

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

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

于 2014-07-15T19:56:51.160 回答