2010-09-13 59 views
1

我想保护我的网站免受网站复制。我看过Ajax Toolkit NoBot,但不幸的是它不符合我的要求。如何在ASP.NET中实现NoBot/AntiBot

以下是我的要求。

  1. 只有0.5%的页面会有后贴,其余页面看起来像静态页面。所以检测应该在最初的请求时发生,而不是在回发之后。
  2. 同时我想允许搜索引擎爬虫。什么是检测搜索机器人的最佳方法?用户代理不正确的方式?

也有可能通过在内容中填充抽取词(我的网站url等)来混淆网页内容,这些词将不会显示我的网站。但是,通过使用JQuery(客户端)/ HTMLDocument(服务器端)编码,不应轻易删除这些填充的单词。

任何抽象的想法也欢迎。

如果你的答案是否定的,请不要回答。如果有任何可能的方法,建议我。

回答

4

你不能。当允许来源查看您的数据,并允许Google Bots时,不可能只阻止抓取工具,任何人都可以像Google一样阻止抓取工具。


但是,您可以阻止人们试图窃取你的数据,例如:

创建一个字节数组出请求的IP地址,然后抓住这个数组(它看起来像1000101011100什么),并通过文本中的所有空间进行工作。如果IP地址阵列包含0,请将该空间替换两个空格。

当您找到一个网站复制了您网站上的文本时,请查看源代码和空白模式,您可以提取抓取工具IP并阻止您的网络服务器访问此IP。

+1

+1有趣的方法。 – NotMe 2010-09-13 12:47:29

1

对于混淆内容,您不希望假定JavaScript将删除客户端上的混淆显示,因为未启用JavaScript的用户将从您的页面中废non。 (更不用说屏幕阅读器和其他可访问性问题了)。如果你必须像这样混淆文本,至少用CSS代替JavaScript是因为它更符合规范,但我仍然不推荐它。

出于好奇,这项工作的目的是什么?通过在互联网上公开提供某些内容,其本质是可复制的。你试图阻止什么,为什么?

+2

不正确的是,想要窃取你的数据的僵尸程序只会将其用户代理设置为GoogleBot之类的东西。 – 2010-09-13 12:37:47

+0

@Jan:啊,好点。现在编辑答案。 – David 2010-09-13 12:43:41