2015-03-13 50 views

回答

1

有许多方法可以防止大多数机器人盗取您的网站。

除了通过用户代理和已知的IP地址进行过滤,您还应该实施行为驱动的阻止。这意味着,如果它的行为像一个爬虫,阻止它。

您可以找到多个搜索引擎机器人列表here。但大多数大牌球员都遵守robots.txt。

因此,另一个相当大的部分是由于机器人行为造成的阻塞。当您使用像Laravel或Symfony这样的框架时,事情变得越来越复杂,因为您可以在每次页面加载之前轻松设置要执行的过滤器。如果不是,则必须实现在每次加载页面之前调用的函数。

现在有一些事情要考虑。蜘蛛通常尽可能快地爬行。因此,您可以使用会话来测量给定时间范围内页面加载和页面加载之间的时间。如果数量X超过,则客户端被阻止。

不幸的是,这种方法正确地依赖于bot处理会话/ cookies,这可能并非总是如此。

另一个或另一种方法是测量来自给定IP地址的页面加载量。这很危险,因为可能有大量的用户使用相同的IP地址。所以这可能会排除人类。

我能想到的第三种方法是使用某种蜜罐。创建一个指向特定网站的链接。该链接必须对计算机可见,但对人不可见。用一些css隐藏它。如果某人或某事使用隐藏的链接访问该页面,则可以(接近)确定它是一个程序。但请注意,有些浏览器插件会预加载他们可以找到的每个链接。所以你不能完全依靠这个。

根据您的网站的性质,最后一种方法是将整个网站隐藏在捕获背后。这在可用性方面是一个苛刻的措施,所以请仔细确定它是否适用于您的用例。

然后有像使用Flash或复杂Javascript的技术大多机器人不明白,但它是令人厌恶的,我不想谈论它。 ^^

最后,我现在会得出结论。

通过使用写得很好的robots.txt大多数机器人会让你孤单。除此之外,你应该结合前面提到的全部或部分方法来找到坏人。

毕竟,只要你的网站是公开可用的,你永远不能逃避为你的网站专门量身定做的定制机器人。当浏览器可以解析它时,机器人也可以做到这一点。

对于更有用的答案,我需要知道你想要隐藏什么以及为什么。

+0

哇,谢谢你这么宽的回答,3stadt!我想我会去一个htaccess的规则:拒绝订单,允许 拒绝所有 – dotzzy 2015-03-13 14:57:28