很久没看过 360 的站长平台了,于是在 360 搜索中 site 了一把,发现居然安全评分是 99,而不是 100。好奇点进去看了下,发现下面这个大奇葩:
呐尼?发现 robots.txt 文件?这也算漏洞?继续看了下解释:
- 漏洞类型:
- 信息泄露
- 所属建站程序:
- 其他
- 所属服务器类型:
- 通用
- 所属编程语言:
- 其他
- 描述:
- 目标 WEB 站点上发现了 robots.txt 文件。
1.robots.txt 是搜索引擎访问网站的时候要查看的第一个文件。
- 收起
2.robots.txt 文件会告诉蜘蛛程序在服务器上什么文件是可以被查看的什么文件是不允许查看的。举一个简单的例子:当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存 robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。同时 robots.txt 是任何人都可公开访问的,恶意攻击者可以通过分析 robots.txt 的内容,来获取敏感的目录或文件路径等信息。
- 危害:
- robots.txt 文件有可能泄露系统中的敏感信息,如后台地址或者不愿意对外公开的地址等,恶意攻击者有可能利用这些信息实施进一步的攻击。
- 解决方案:
- 1. 确保 robots.txt 中不包含敏感信息,建议将不希望对外公布的目录或文件请使用权限控制,使得匿名用户无法访问这些信息
2. 将敏感的文件和目录移到另一个隔离的子目录,以便将这个目录排除在 Web Robot 搜索之外。如将文件移到“folder”之类的非特定目录名称是比较好的解决方案: New directory structure: /folder/passwords.txt/folder/sensitive_folder/
New robots.txt: User-agent: * Disallow: /folder/
3. 如果您无法更改目录结构,且必须将特定目录排除于 Web Robot 之外,在 robots.txt 文件中,请只用局部名称。虽然这不是最好的解决方案,但至少它能加大完整目录名称的猜测难度。例如,如果要排除“admin”和“manager”,请使用下列名称(假设 Web 根目录中没有起始于相同字符的文件或目录): robots.txt:
User-agent: *
Disallow: /ad
Disallow: /ma
- 大概是懂了,就是 robots 会泄漏网站后台或其他敏感地址,我之前遇到不想让人通过 robots 知道的地址,我也会使用上述解决办法中的第 3 条,只写局部字符串。
但是,这些完全是掩耳盗铃的做法,明眼人都能轻松识别博客是 WordPress 还是其他建站程序,什么敏感目录根本没法隐藏,当然隐藏了也没啥用。
不过,看到不是 100 分就不爽,所以我也掩耳盗铃的解决一下吧!
我的思路很简单,对于非蜘蛛抓取 robots.txt 行为一律返回 403,也就是 robots.txt 只对蜘蛛开放。实现非常简单,在 Nginx 配置中加入如下代码即可:
#如果请求的是 robots.txt,并且匹配到了蜘蛛,则返回 403 location = /robots.txt { if ($http_user_agent !~* "spider|bot|Python-urllib|pycurl") { return 403; } }
加入后 reload 以下 Nginx,然后再到浏览器访问 robots 地址,应该能看到禁止访问 403 了。
随即去 360 扫描了一把,结果并不意外:
哦了,问题就简单的解决了,仅仅只是为了这句“神马黑客都是浮云,网站安全比肩 360,实在是给力!”,呵呵呵。。。挡一挡网络上的匿名扫描还行,其他的就真的只是浮云了。
几乎没关注过这些~~
:razz: 跟你一样,咱也不怎么在乎这个!
360也是奇葩,看来是100分网站太多了,需要降低名额了。
不知道我的免费网站支不支持robots的修改,楼主大神啊
之前我也注意到这个问题了,可能不知道怎么解决。张哥,虚拟主机怎么办?
这个6,哈哈哈 :grin: 话说我都换头像很久了,咋你博客这儿还没更新缓存,噗
Jager你好~ 按照你的方法,我去nginx.conf 里添加了你提供的代码,确实返回了403.但是当我去百度站长平台更新robots.txt时,却提示了:您的robots文件设置了重定向跳转,暂时无法查看。 这该怎么办呢?
1、使用百度抓取诊断试下能否抓到robots内容
2、点击更新robots的时候查看nginx日志查看抓取信息
Jager你好~按照你的方法,我去nginx.conf添加了你的代码。但是当我到百度站长平台更新robots.txt时,却提示了:您的robots文件设置了重定向跳转,暂时无法查看。 这该怎么办呢?
谢谢分享,正好测试一下头像吧。
还有就是发现只要输入了邮箱,就能获取到头像了,挺好。
审查元素的时候出现了个错误哦 是https那个
没看到报错信息。。下次看到请粘贴下地址
Font from origin 'http://res.zgboke.com' has been blocked from loading by Cross-Origin Resource Sharing policy: The 'Access-Control-Allow-Origin' header contains multiple values 'https://zhang.ge, https://zhang.ge', but only one is allowed. Origin 'https://zhang.ge' is therefore not allowed access.
就是本页,图就不发了
知道了,个别节点缓存了老的head规则,慢慢就会更新。
这个 好吧 确实是一种自己骗自己的方法 但是也不会有谁去在意啊
确实不错
这么多老司机在下面评论,我也来一个
谢谢分享! :roll: :roll: :roll: :roll: :roll:
我的也提示这个,强迫症的我跟你一样只想看到100分!
感谢张哥分享
没有百分百的实力,写上一百分,也是自我欺骗(⊙o⊙)?
没话找话说
大神就是大神 哈哈
谢谢分享 懒得检测
360挺搞笑的。。。。
估计也就是骗骗小白的站长,像张老师这样的明眼人一样就看破了。360真奇葩。
感谢楼主的分享呀,今天来收货不错,继续潜水
360的检测没什么卵用
没人说它有用。
去查了下 还真是这样。。
谢谢楼主的分享,很多专业的帖子。会常来看看。 :oops:
还真是不怎么清楚这个呢
好牛逼啊,我也学学
Jager你好,请教一下,服务器是win2008 R2 IIS7.5的话需要如何修改呢?
阿里虚拟主机怎么禁止
同问,虚拟主机怎么禁止
感谢分享
我按您的方法加到配置里,nginx怎么也启动不了。各种位置都测试了,而且发现只加第一段都启动不了,肿么破~~~~我的nginx版本是1.11.5
启动肯定有个报错信息,不贴出来我怎么知道?我文章都是测试可用的。
另外,简化了下:
对部署这块是小白~~~~我只是看任务管理器的进程里面没有nginx的进程~~~~
优化的代码我也试过了,也是启动不了。大虾提示一下在哪看报错信息吧 :!:
windows服务器就算了,当我没说
我的天。。。。我刚找到错误信息,楼主竟然这么打击我。。。。
2016/11/24 09:13:40 [emerg] 4496#5036: unknown directive "if($http_user_agent" in C:/nginx-1.11.5/conf/nginx.conf:73
if($http_user_agent
if 和括号之前需要有空格,我文章中明明是有空格的。
加了空格可以启动了,但360检测还是99分 :sad:
博主你好,kangle是没有nginx的,那该如何修复呢?
kangle 这个不熟悉,但原理是一致的
大哥,robots就是给蜘蛛用的,你这样配置下还不如删除robots文件
麻烦不要误导读者好吧,文章的做法就是只给蜘蛛抓取robots.txt,普通用户不给看。不仔细看文章就瞎BB,还不留邮箱,你真的是来交流的?
请问apche服务器的htaccess应该如何写代码
方法挺好用的,今天我的站点360评分太低,已经搞定,终于100分了,谢谢分享。
我是lnmp的搭建的,改成了location ~ /robots.txt 就返回403
=和~有什么不一样吗, :roll:
没事,好好补下课再自己改造。
~ 表示匹配,支持正则,小数点表示所有字符, location ~ “^/robots\.txt” {
= 表示完全等于。
请问博主,Apache如何进行让网友无法看到robots.txt,而让搜索引擎能爬去这个文件,谢谢。
为什么输入了没有效果,还是可以访问