截至2012年,僵尸网络的流量超过了网络上的人的流量。平均来说,你网站上超过50%的点击来自机器人而不是人类。
机器人的用途很广泛,并不都是不好的。一些机器人,如谷歌和百度使用的机器人,会抓取和索引你的网页。
如果你想屏蔽Googlebot或者百度蜘蛛,你的网站最终会从它的索引中删除;他们无法再访问它,因此您的内容将不会显示。
有些机器人只是用来抓取电商网站,寻找交易。他们将找到的每个电子商店与给定的产品进行交叉引用,因此主页可以显示各个商店中的产品价格。
一些网站会利用这些来确保自己在排行榜的前列,相互竞争的卖家会通过调整价格来互相推诿。
一些垃圾邮件机器人会搜索博客来寻找和利用各种评论系统。没有认证或验证码的评论可以由机器人填写,垃圾评论可以留给垃圾网站建立链接,捕捉无知在线用户的点击,甚至可以炸掉其他SEO为负的良性网站。
一些黑客机器人抓取网站,检查网站基础设施。他们测试该域以找到common/admin.htm样式的URL,并找到使用默认CMS而不更改其用户名或密码的网站。他们搜索易受攻击的网站,他们可能收集管理员或用户信息,或者只是向黑客机器人的所有者报告URL。他们可能被编程为简单地删除一个站点并用他们自己的内容替换它。
恶意机器人源于计算机病毒。他们不管是公开还是后台接管用户的电脑,利用电脑的上网功能为病毒主人所欲为。通常这只是在DDoS攻击中用来锤打给定的URL,旨在取消网站,或者通过代码中的错误来强调服务器足够黑客进入。
机器人也是恶意的;他们就像搜索引擎机器人,抓住内容。然而,他们不是将内容添加到搜索索引中,而是简单地大量复制内容。内容、脚本和媒体;所有这些都被下载并放在垃圾邮件发送者的服务器上,因此他们可以收集这些数据——或者只是批量粘贴他们的垃圾邮件站点的内容。对他们来说都是一次性的,但是他们所获得的资源在不再有用的时候就会被丢弃。
显然,这些机器人有很多问题。然而,除了它们的目的之外,它们还有另一个副作用;服务器压力。机器人可以以一种简化和轻量级的方式访问你的网站——搜索引擎机器人经常这样做——但即使它们这样做,它们仍然会访问你的网站。他们仍然下载内容,从您的服务器发出请求,并且通常会耗尽资源。
在许多情况下,这甚至可以关闭一个网站。
怎么让机器人停下来?
有两种方法可以阻止机器人访问你的网站。一个是通过robots.txt文件,另一个是通过。htaccess文件。
什么是robots.txt文件?
Robots.txt文件是放置在服务器根目录下的文本文件。它的目的是为想要访问你的网站的机器人提供指导。您可以使用它来阻止对特定机器人或所有机器人的访问。
为什么不用robots.txt?
robots.txt的问题在于它为机器人提供了指导。如果机器人选择不尊重它——我的意思是,如果机器人的创造者给它编程忽略robots.txt——你什么也做不了。这就像打开你的门,但张贴的标志上写着“远离强盗。”如果强盗选择无视标志,没有什么可以阻止他们走进大门。
。htaccess文件是ApacheWeb服务器软件使用的配置文件。它更像是前门的保安,主动阻止潜在的劫匪。除非在这种情况下,保安有能力看到试图进入的人是不是来自RobberHome,穿着写着“我是劫匪”的衬衫,或者用其他方式表明身份。
这意味着。htaccess文件可以主动屏蔽大部分机器人,但不是所有的机器人。特别是僵尸网络机器人——普通用户的下属计算机——通常不会被默认阻止。这是因为这些是传统的用户计算机,使用传统的用户软件。如果你阻止他们,你就阻止了人类。但是对于大多数其他机器人来说。htaccess文件是理想的。
请注意。htaccess文件只能在Web服务器运行Apache时使用。如果你正在使用Nginx,Lighttpd或其他一些利基服务器架构,那么你必须找到这个软件可以阻止机器人的方法。
识别要阻止的机器人
首先,给你一个警告。阻止机器人通过时要非常小心。htaccess文件。一个错别字,你就能最终让整个互联网停下来。你显然不想那样。
你要做的第一件事是备份电流。htaccess文件。如果有错误阻止了您不想阻止的流量,您可以恢复旧文件以恢复更改,直到您可以找出问题所在。
你要做的第二件事是弄清楚如何找到你自己的访问日志。对于Apache,您需要使用Linux/Unix命令来访问日志文件。
日志文件显示了服务器访问的详细信息。它将显示用于访问服务器的IP地址、客户端计算机的ID(如果可用)、机器的用户ID(如果使用验证)、请求的时间、是否通过HTTP访问、服务器返回的状态代码以及请求对象的大小。
日志文件将包含所有普通用户和所有机器人访问权限的数据。一些机器人,如谷歌机器人,将通过其用户代理信息来识别自己。坏机器人有时会识别自己,但通常只有某些特征会将它们标记为非人类。他们可能使用的是通常使用的过时版本的浏览器。它们可能来自已知的垃圾邮件地址或域。
通常,如果机器人一个月只访问你的网站一次,你不一定需要担心。你可以想停就停,但不一定能节省你的时间和精力。您的主要目标应该是阻止不断访问的机器人,这些机器人会对服务器的性能产生负面影响。
按IP地址或IP范围阻止时要非常小心。很容易看出很多机器人来自168。*.*.*用星星上的各种数字,想“我能阻止这一切!挡住整个/8范围!”问题是IPv4中的a/8范围是16,777,216个不同的IP地址,其中许多可能被合法用户使用。您可以使用过于宽泛的规则来阻止大量合法流量。
中的大多数条目。htaccess文件不会被IP地址屏蔽,只是因为IP地址太容易通过代理更改。大多数将使用用户代理名称、来自无需更改的机器人的特定重复IP地址,或者通常用于托管垃圾邮件或黑客工具的域。
使用。htaccess文件
我们将使用三种方法来阻止机器人通过。htaccess文件。第一种是最常见的一种,它使用机器人的用户代理来阻止它。这通常是可靠的,因为普通用户不会有机器人用户代理。
在。htaccess文件,你首先需要一行“RewriteEngineon”。这一行确保任何后续重写的行都可以工作,而不是被解析为注释。
接下来,您可以添加“rewritecond%{http_user_agent}”作为您自己的行。这使得基于用户代理重写条件成为可能。你有两个选择:您可以在该行之后添加许多不同的用户代理,或者您可以添加一个用户代理,然后再次添加该行。例如:
RewriteCond%{HTTP_USER_AGENT}\ 12soso|\ 192\.comagent|\ 1noonbot|\ 1on1searchbot|\ 3de\_search2|\[NC,OR]要么:
RewriteCond%{HTTP_USER_AGENT}^[Ww]eb[Bb]andit[NC,OR] RewriteCond%{HTTP_USER_AGENT}^$[NC,OR] RewriteCond%{HTTP_USER_AGENT}^Acunetix[NC,OR] RewriteCond%{HTTP_USER_AGENT}^binlar[NC,OR] RewriteCond%{HTTP_USER_AGENT}^BlackWidow[NC,OR]两个都很好。在第一个示例中,您需要每500个左右的条目添加一个额外的RewriteCond行。这是因为使用命令的行越长,Apache就越难解析。把它分解成单独的条目会使它更加混乱,但是可能更容易阅读。反正两种方法你都可以用。
最后的NC和OR位是重写标志。NC代表“nocase”,这意味着条目不区分大小写。这意味着“12soso”和“12Soso”的处理方式相同。OR的意思是“这个或那个”,因为只要它匹配列表中的一个或另一个条目,就会屏蔽机器人,而不是“AND”,会是所有这些条目。
在这里的机器人列表之后,你需要指定重写规则。所有这些只是一个两部分子句的第一部分:如果URL与此匹配,那么…第二部分是会发生什么。添加“重写器。*–[f,L]"在自己的行上。
这是通过将来自bot用户代理的任何传入流量重定向到被阻止的页面来实现的。具体来说,它发送一个403禁止代码。禁止使用[F],[L]是一个代码,它指示重写规则应该立即应用,而不是在解析。htaccess文件。
另外两种方法是基于HTTP引用的阻止和基于IP地址的阻止。
要通过HTTP引用阻止,使用“RewriteCOND%{http_referrer}”作为起始行,使用剥离referer的域,如www1.free-social-buttons\。并使用[NC,OR]块。然后添加相同的RewriteRule行。您将得到类似这样的结果:
RewriteCond%{HTTP_REFERER}www4.free-social-buttons\.com RewriteRule^.* - [F,L]最后,您可以简单地根据IP地址进行阻止。如果发现某个特定的IP地址危害特别大,一个小时给你的网站发一百次或者其他任何内容,都可以阻止。就写“拒绝来自*。*.*.*",其中星号是IP地址。看起来像是“来自173.192.34.95的拒绝”,最后可能会用/28或者别的什么封锁一个范围。
快捷键
如果这一切有点太复杂,你可以使用快捷方式,使用别人放在一起的列表。我发现两个推荐。首先,这个来自HackRepair.com的pastebin条目。第二个是TabStudio中的列表。
每次使用。htaccess文件,一定要先用几种不同的方法测试对站点的访问。如果你以一种不应该被阻止的方式被阻止,那么就会出现问题,你需要修复这个条目。
相关文章推荐欢迎分享,转载请注明来源:内存溢出
评论列表(0条)