网络安全:robots.txt防止向黑客泄露后台地址和隐私目录的写法
做优化的朋友都知道网站的robots的目的是让搜索引擎知道我们网站哪些目录可以收录,哪些目录禁止收录。通常情况蜘蛛访问网站时,会首先检查你的网站根目录是否有robots文件,如果有,则会根据此文件来进行抓取判断,如果不存在robots,那么网站的所有页面都有可能被收录,这将会给网站带来安全隐患。
例如:通过百度搜索“织梦内容管理系统 V57_UTF8_SP1”就会出现一堆用织梦程序的后台地址,将后台暴露给他人,带来极大的安全隐患。
下面木子网络先给大家介绍下robots.txt是干什么的?
robots.txt基本上每个网站都有,并且是在网站的根目录下,任何人都可以直接输入路径打开并查看里面的内容,如http://www.muziwl.com/robots.txt。上面已经讲到该文件的目的就是告诉搜索引擎,哪些页面可以去抓取,哪些页面不要抓取。
robots.txt如何使用
在网站根目录下创建一个文件,取名robots.txt,文件名必须是这个!然后设置里面的规则。
比如我有一个博客,我要设置不允许任何搜索引擎收录本站,robots.txt中就设置如下两行即可。
User-agent: *
Disallow: /
如果要限制不让搜索引擎访问我们网站后台admin目录,则规则改为:
User-agent: *
Disallow: /admin/
robots.txt更多的使用规则,不在本文的讨论范围之内,详细的可以阅读下以前的一篇文章《网站优化之robots文件的写法详解》。
通过上面的方法我们可以禁止搜索引擎收录我们的后台页面,但矛盾的是,robots.txt文件任何人都可以访问,包括黑客。为了禁止搜索引擎,我们同时也把隐私泄露给了黑客。
像上面的例子中,我们为了让搜索引擎不要收录admin页面而在robots.txt里面做了限制规则。但是这个robots.txt页面,谁都可以看,于是黑客就可以通过robots了解我们网站的后台或者其它重要的目录结构。
有没有办法既可以使用robots.txt的屏蔽搜索引擎访问的功能,又不泄露后台地址和隐私目录的办法呢?
有,那就是使用星号(*)作为通配符和截取部分目录名称。举例如下后台地址为admin:
User-agent:*
Disallow: /a*/
或者使用下面这种方法:
User-agent: *
Disallow: /ad
关键在第二句,这样写就会阻止搜索引擎访问任何以“ad”开头的文件和目录。为了防止别人猜出你的后台目录,这里截取的越短越好。当然如果你后台的目录是admin,还是有可以被人猜到,但如果你再把admin改为admadm呢?还有会谁能知道?
总结下,为了不让搜索引擎收录网站的后台目录和其它隐私目录,我们将这些路径在robots.txt文件中禁用。又为了让robots.txt中的内容不泄露网站的后台和隐私,我们可以使用上面两种robots写法。最后为了不让黑客猜到真实的路径,我们可以把这些敏感的目录进行非常规的重命名例如加特殊符号“@”等。
好了,关于robots.txt防止向黑客泄露网站后台和隐私目录的写法,就介绍这么多,希望对大家有帮助,谢谢!
网站优化之robots文件的写法详解
在网站优化过程中,很多站长朋友都遇到过这样一个问题,不想让搜索引擎收录的页面被收录了,如果网站后台页面或者是配置文件等被收录了,那么网站的安全性就受到了威胁,这时候网站robots.txt文件的功能就体现出来了,我们只要在文件中屏蔽掉蜘蛛的访问,这样搜索引擎就不会抓取这些页面了,这样不仅可以减少蜘蛛的爬行压力,还可以集中网站权重,对网站优化也十分有利。
在正式介绍robots.txt标准写法之前,我们先来介绍下robots的做用,从书面释义robots是机器人的意思,从文件后缀来看,是一个txt文档,综合这两点可以看出此文件是给搜索引擎的蜘蛛机器人看的。所谓robots.txt文件,是Robots协议(也称为爬虫协议、机器人协议等),是搜索引擎蜘蛛抓取的第一个文件,通过这个文件,蜘蛛可以了解到网站那些内容可以抓取,那些页面不可以抓取,当然,我们也可以直接屏蔽掉蜘蛛的访问。下面,木子网络给大家具体介绍一下robots.txt文件的写法。
robots.txt语句:
User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow: /ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图 告诉爬虫这个页面是网站地图
robots.txt写法举例:
1、禁止所有搜索引擎访问网站的所有部分
User-agent: *
Disallow: /
2、禁止百度索引你的网站
User-agent: Baiduspider
Disallow: /
3、禁止Google索引你的网站
User-agent: Googlebot
Disallow: /
4、禁止除Google外的一切搜索引擎索引你的网站
User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /
5、禁止除百度外的一切搜索引擎索引你的网站
User-agent: Baiduspider
Disallow:
User-agent: *
Disallow: /
6、禁止蜘蛛访问某个目录
(例如禁止admin\css\images被索引)
User-agent: *
Disallow: /css/
Disallow: /admin/
Disallow: /images/
7、允许访问某个目录中的某些特定网址
User-agent: *
Allow: /css/my
Allow: /admin/html
Allow: /images/index
Disallow: /css/
Disallow: /admin/
Disallow: /images/
robots.txt常用写法举例:
例1. 禁止所有搜索引擎访问网站的任何部分 | User-agent: * Disallow: / |
例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt”) |
User-agent: * Disallow: 或者 User-agent: * Allow: / |
例3. 仅禁止Baiduspider访问您的网站 | User-agent: Baiduspider Disallow: / |
例4. 仅允许Baiduspider访问您的网站 | User-agent: Baiduspider Disallow: User-agent: * |
例5. 禁止spider访问特定目录 在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即robot不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不能写成 “Disallow: /cgi-bin/ /tmp/”。 |
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
例6. 允许访问特定目录中的部分url | User-agent: * Allow: /cgi-bin/see Allow: /tmp/hi Allow: /~joe/look Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~joe/ |
例7. 使用”*”限制访问url 禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)。 |
User-agent: * Disallow: /cgi-bin/*.htm |
例8. 使用”$”限制访问url 仅允许访问以”.htm”为后缀的URL。 |
User-agent: * Allow: .htm$ Disallow: / |
例9. 禁止访问网站中所有的动态页面 | User-agent: * Disallow: /*?* |
例10. 禁止Baiduspider抓取网站上所有图片 仅允许抓取网页,禁止抓取任何图片。 |
User-agent: Baiduspider Disallow: .jpg$ Disallow: .jpeg$ Disallow: .gif$ Disallow: .png$ Disallow: .bmp$ |
例11. 仅允许Baiduspider抓取网页和.gif格式图片 允许抓取网页和gif格式图片,不允许抓取其他格式图片 |
User-agent: Baiduspider Allow: .gif$ Disallow: .jpg$ Disallow: .jpeg$ Disallow: .png$ Disallow: .bmp$ |
例12. 仅禁止Baiduspider抓取.jpg格式图片 | User-agent: Baiduspider Disallow: .jpg$ |
在书写写这些语句的时候尤其注意的一点是冒号(:)和( /) 之间要有一个空格符,如果这个空格没有加的话,是不能起到作用的,robots.txt文件一般放在网站的根目录下,而且命名必须是robots.txt。
在屏蔽目录的时候,注意,这里如果是阻止抓取某目录的话目录名字一定要注意“/”,不带“/”表示的是阻止访问目录所有内容和包含目录名的文件,而带上“/”则表示阻止访问目录下的所有内容,这两点要分清楚,详见《robots文件屏蔽目录带/斜杠和不带的区别》。
为了让搜索引擎更快的收录我们的内页,我们一般都会做一个百度地图或者谷歌地图,那么,Sitemap:+网站地图,这个命令就可以快速的引导搜索引擎蜘蛛来到你的地图页面对网站内页进行抓取。当网站的死链接过多处理非常麻烦的时候,我们可以利用robots来屏蔽这些页面,这样就可以避免网站因为死链接被百度降权。
在网站优化过程中,对于搜索引擎蜘蛛的了解和控制是非常重要的,那么今天关于robots.txt文件的写法,木子网络就介绍到这里,希望能够帮助到大家。
网络安全:robots.txt防止向黑客泄露后台地址和隐私目录的写法的更多相关文章
- robots.txt防止向黑客泄露网站的后台和隐私
为了不让搜索引擎索引网站的后台页面或其它隐私页面,我们将这些路径在robots.txt文件中禁用了.但矛盾的是,robots.txt文件任何人都可以访问,包括黑客.为了禁止搜索引擎,我们把隐私泄露给了 ...
- Robots.txt 协议详解及使用说明
一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为“网络爬虫排除标准(Robots Exclusion Protocol)”.网站通过Robots协议告诉搜索引擎哪 ...
- dedecms:解析Robots.txt 协议标准
Robots.txt 是存放在站点根目录下的一个纯文本文件.虽然它的设置很简单,但是作用却很强大.它可以指定搜索引擎蜘蛛只抓取指定的内容,或者是禁止搜索引擎蜘蛛抓取网站的部分或全部内容. 下面我们就来 ...
- Natas3 Writeup(爬虫协议robots.txt)
Natas3: 页面提示本页面什么都没有. 在源码中发现提示:无信息泄露,谷歌这次不会发现它.提到了搜索引擎,猜测爬虫协议robots.txt中存在信息泄露,访问网站爬虫协议http://natas3 ...
- robots.txt用法
主要作用是告诉蜘蛛爬虫该网站下哪些内容能抓取,哪些内容不能抓取.虽然可以没有robots.txt这个文件,默认就抓取该网站的所有文件,对搜索引擎爬虫没有任何的影响,但是如果你想控制蜘蛛的检索间隔,你就 ...
- nginx下禁止访问robots.txt的设置方法
关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息.您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网 ...
- [nginx]Nginx禁止访问robots.txt防泄漏web目录
关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息.您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网 ...
- 如何设置网站的robots.txt
做过网站优化的朋友都知道,搜索引擎蜘蛛爬行抓取网站时首先会去访问根目录下的robots.txt文件,如果robots文件存在,则会根据robots文件内设置的规则进行爬行抓取,如果文件不存在则会顺着首 ...
- web之robots.txt
什么是roots协议 robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被 ...
随机推荐
- python 十大web框架排名总结
0 引言 python在web开发方面有着广泛的应用.鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题.为此,我特此对比较常见的几种框架从性能.使用感受以及应用情况进行一个粗略的分析. 1 D ...
- nginx的linux服务器内核参数调整【转】
概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...
- vc++基础班[23]---文件夹的基本操作
①.文件夹的创建:CreateDirectory ※※※ 注意:此函数只能创建一层目录,比如想在 C 盘下的 Temp 目录下创建新目录为:123 那么前提是 Temp 这个目录存在才可以! ...
- FHQ Treap摘要
原理 以随机数维护平衡,使树高期望为logn级别 不依靠旋转,只有两个核心操作merge(合并)和split(拆分) 因此可持久化 先介绍变量 ; int n; struct Node { int v ...
- java乱码问题解决
1.通过统一的过滤器进行了页面过滤(问题排除) 2.通过debug功能发现页面传到servelet和DAO中文都是OK的,可以说明在web程序端没有问题 问题就可能出现在数据库上面 首先查看数据库编码 ...
- ajax请求封装的公共方法
/** * post 方法 */ function ajaxPost(url, params, callBack) { ajax(url,params,"post",callBac ...
- Codeforces 1110D Jongmah [DP]
洛谷 Codeforces 我-我我把这-这这题切了??? 说实话这题的确不难,只是我看到有大佬没做出来有点慌-- 突然发现这题是我在洛谷的第500个AC呢.那就更要写篇题解纪念一下了. 思路 容易想 ...
- js获取参数函数
- Where is NuGet in VS2017 Community?
问题:在VS2017中找不到NuGet 回答:https://stackoverflow.com/questions/43702484/where-is-nuget-in-vs2017-communi ...
- 快速理解VirtualBox的四种网络连接方式
VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是 ...