|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
来源:站长网原创 2006-11-21 18:58 我来投稿 参与评论
为什么我们要逆着常理来这样做?
如果你是一个站长,估计你总在千方百计的让你的网站能在搜索引擎里面找到,并且能够在搜索引擎里面排名靠前,但有时,你可能并没登陆过任何搜索引擎,可却莫名其妙的发现可以通过它搜索到你的网站。或许有的主页内容你乐于世人皆知,但有的内容你却不愿被洞察、索引。可能你要求用户验证,但这并不能逃避搜索引擎的搜索,只要在搜索引擎里面搜索到你的这个网页,不用密码照样可以登陆。并且简单的加密常常容易被攻破。难道使用数据库吗?这不但消耗宝贵网站空间资源,对于一些简单的站点,又无法实现。怎么办呢?搜索引擎不是个瞒不讲理,横行霸道的入室盗贼。如何把搜索引擎拒之门外呢?
探索一下搜索引擎的的原理
首先,我们要知道搜索引擎的工作原理。网络搜索引擎主要由网络机器人(Robot,这个是全文的关键)、索引数据库和查询服务三个部分组成。只要被网页机器人找到的网页,就会在搜索引擎的数据库中建立索引。利用查询客户端,就一定可以找到你的网页。所以下面的关键是研究这个网络机器人。索引数据库和查询服务的原理我们就不详细分析了。
Web Robot其实是种程序,它可以侦测大量Internet网址的超文本结构和网页里的URL连接,递归地检索网络站点所有的内容。这些程序有时被叫“蜘蛛(Spider)”,“网上流浪汉(Web Wanderer)”,“网络蠕虫(web worms)”或Web crawler。大型的搜索引擎站点(Search Engines)有专门的Web Robot程序来完成这些信息的采集。高性能的Web Root去自动地在互联网中搜索信息。一个典型的网络机器人的工作方式,是查看一个页面,并从中找到相关的关键字和网页信息,例如:标题,网页在浏览器上的Title,还有一些经常被用来搜索的词汇,等等。然后它再从该页面的所有链接中出发,继续寻找相关的信息,以此类推,直至穷尽。网络机器人为实现其快速地浏览整个互联网,通常在技术上采用抢先式多线程技术实现在网上聚集信息。通过抢先式多线程的使用,它能索引一个基于URL链接的Web页面,启动一个新的线程跟随每个新的URL链接,索引一个新的URL起点。把搜索到的信息建立索引,就可以让用户搜索了。呵呵,可能你会想到,这样下去,不是个无限循环呀?当然,机器人也需要休息的,网络机器人是定期发出,完成一个工作时段就结束。所以,刚制作完成的网页,不会马上被收入搜索引擎索引里。说到这里,网络搜索引擎的基本工作原理基本上让大家了解了。指挥这个网络机器人,不让它见门就进,见路就闯,就是接下来的工作了。
逃避搜索引擎的法眼
作为搜索引擎的开发者,同样留给了网络管理员或网页制作者提供了些方法来限制网络机器人的行动:
当robots访问一个网站(比如/google)时,首先会像一个大宅子的陌生访问者一样,先查看查看该宅子是否同意它进入。如果不同意,它就悄然无声的走掉;如果同意,它会看看主人只允许它进入那些房间。网络机器人首先检查该网站中是否存在/google/robots.txt这个文件,如果找不到这个文件,那么,机器人就会横冲直入,查遍它需要查找的信息。如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。当然,如果该文件的内容为空的话,那么也就相当于没有找到文件一样,大胆行事。记住robots.txt文件应该放在网站根目录下。
robots.txt文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下:
User-agent:
该值用于描述搜索引擎robot的名字,不同的搜索引擎是有不同的名字的,在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限制,对这个文件来说,如果你需要限制robots,那么至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件中," User-agent: * "这样的记录只能有一条。
Disallow :
该值用于限制robot访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow 开头的URL均不会被robot访问到。例如“Disallow: /hacker”对/hacker.html 和/hacker/index.html都不允许搜索引擎访问,而“Disallow: /hacker/”则robot照样可以访问/hacker.html,而不能访问/hacker/index.html。任何一条Disallow记录为空,也就是说在多条Disallow记录下,只要有一条是写成“Disallow:”说明该网站的所有内容都允许被访问,在"/robots.txt"文件中,至少要有一条Disallow记录。
下面是Robot.txt的一些例子,只要把下列的任何一个代码保存为robots.txt,然后传到指定位置,就可以实现逃避搜索引擎的法眼:
例1. 禁止所有搜索引擎访问网站的任何部分:
User-agent: *
Disallow: /
例2. 允许所有的robot访问:
User-agent: *
Disallow:
例3. 禁止某个搜索引擎的访问:
User-agent: BadBot
Disallow: /
例4. 允许某个搜索引擎的访问:
User-agent: baiduspider
Disallow:
User-agent: *
Disallow: /
例5. 一个简单例子:
在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不要写成 "Disallow: /cgi-bin/ /bbs/"。User-agent:后的* 具有特殊的含义,代表"any robot",所以在该文件中不能有"Disallow: /bbs/*" or "Disallow: *.gif"这样的记录出现.
User-agent: *
Disallow: /cgi-bin/
Disallow: /bbs/
Disallow: /~private/
结束语:是不是这样设置后,搜索引擎马上就找不到我们所限制的网页呢?不是的,就像文章开始前说过,网络机器人是定期发出,一旦在索引数据库里面做了记录,就要等下次更新数据库时才有可能生效。一个快捷的办法,就是马上到搜索引擎上去注销你的网页,可这个也是需要等待几天的。如果对十分重要的网页,只要更换个目录或文件名就可以了。
对于你已经希望保密的网页来说,千万不要在其他未保密的网页里有URL连接到这些网页上,在网络机器人工作原理那已经说过,它可以从该页面的所有链接中出发,继续寻找相关的信息。
可能到了这,你已经对你的保密网页感到安全了。可是,你想到没有,对于纯文本文件,是可以通过HTTP,或FTP下载的。也就是说,有存心不良的人,可以通过这个robots.txt找到一些线索。解决的办法是,最好使用Disallow时,用来限制目录,并且对这个目录下需要保密的网页,使用特殊的文件名,不要使用index.html之类的名字,不然,这跟猜弱口令一样容易。起些形如d3gey32.html的文件名,你的网页就安全多了。
最后不放心的话就再给保密网页上上一到密码验证的保险,让你高枕无忧。
|
|