网站的robots.txt的目的是告知搜索引擎,哪些目录不可以访问和收录。当搜索爬虫访问你的站点时,它会首先检查你站点根目录下是否有robots.txt文件,如果有,搜索引擎机器人就会根据此文件中的内容来确定访问的范围;如果不存在robots.txt,所有的搜索蜘蛛将可以访问你网站上的所有页面。这将给网站带来安全隐患。
例如:通过google搜索“.com/admin/login.asp”就会出现一堆网站的后台,将后台暴露给他人,带来极大的安全隐患。
那么如何防止黑客通过robots.txt看到你的后台呢?
方法一:
假设我们后台目录是 /dedeadmin/,那么我们可以在设置的时候这样写:
User-agent: *
Disallow: /ded
Disallow: /ded
关键在第二句,这样写就会阻止搜索引擎访问任何以“ded”开头的文件和目录。为了防止别人猜出你的后台目录,这里截取的越短越好,比如:
User-agent: *
Disallow: /d
这样,同样起到作用,但留的字母更少,更难猜了,这时会阻止搜索引擎访问所有以d”开头的文件和目录。
这里我们需要注意的问题是,为了避免影响其它目录的收录,可以修改一下后台目录文件名。如果后台目录以某个字母或几个字母开头,那就避免其它需要被收录的文件或目录以这几个字母开头,这样就可以了。
方法二:
后台目录做个首页文件, 跳转到真正的后台首页文件.
比如说, 后台首页是index.php, 而服务器优先index.html
写个index.html文件, 跳转到index.php
index.html文件在<head>中加入
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">,
搜索爬虫就不会继续到该目录下的其他页面了
注:
NOINDEX指令:表示拒绝搜索机器人索引本页,但可跟踪该页上的链接;
NOFOLLOW指令:表示拒绝机器人跟踪本页链接,但可索引本页。
还可以加入,NOARCHIVE:告诉Google不要保存含此标签的网页的快照。
补充:
只是拦截百度蜘蛛爬取网页,而允许其他搜索引擎收录:
<META NAME="baiduspider" CONTENT="NOINDEX, NOFOLLOW">
允许搜索引擎收录你的网页,但禁止其收录网页上的图片:
<META NAME="ROBOTS" CONTENT="NOIMAGEINDEX">
如果是linux+apache, 还可以用.htaccess文件限制
写的很好吧,robots.txt很重要,希望上面的设置对大家有所帮助。