网站地图    收藏   

主页 > 后端 > 网站安全 >

谁在窥探你的隐私-无线站点与robots.txt - 网站安

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 这是个全民[敲 摸]手机[键盘 屏幕]的时代,这是个全民搜索的时代。 曾几何时,人们在陌生城市问路还是警察叔叔,XXX怎么走,现在却成了土货,拿爱疯手机用谷歌soso一下啊! 可以看...

这是个全民[敲 摸]手机[键盘 屏幕]的时代,这是个全民搜索的时代。
 
 
 
     曾几何时,人们在陌生城市问路还是“警察叔叔,XXX怎么走”,现在却成了“土货,拿爱疯手机用谷歌soso一下啊!”  可以看出,随着web2.0的时代,搜索引擎成了日常生活中不可或缺的工具之一,连这篇文章里面的有些内容也是通过搜索引擎收集而来。
 
 
 
     搜索引擎的市场前景这么火,做搜索的也就多,国外的谷歌,雅虎等等老牌搜索商且不说,国内的百度,soso,搜狗,网易有道,人民搜索等等也是常见的搜索引擎,更有些中小公司或者学校也有自己开发的搜索引擎。
 
 
 
     标题里的robots.txt,做爬虫的大牛们应该挺熟悉,一个良好,善意的爬虫在爬取索引网页的时候,会首先爬取根目录下的/robots.txt文件,从robots.txt中得知服务器允许你爬取哪些内容,不允许你爬取哪些。
 
 

 
 
  比如一个爬虫想要访问http://www.somesite.com/sample.html时,它会首先访问http://www.somesite.com/robots.txt,得到内容为:
 
 
 
User-agent :*
 
 
 
Disallow:/
 
 
 
  这里User-agent表示后面的限制对指定名字的爬虫生效,如User-agent: Baiduspider 表示只对百度的爬虫生效 ,这里为*表示对所有的爬虫都生效。
 
 
 
  Disallow:/ 表示所有的文件都不能被爬取,像Disallow:/a/表示a目录下的文件不能被爬取,类似的关键字还有Allow,表示哪些目录或文件能被爬虫爬取索引。
 
 
 
  其他还有什么sitemap字段,这个和网站SEO相关,也有单独的书写规范,但是不在本文的讨论范围之内,在http://www.robotstxt.org  可以获得robots.txt的书写规范与注意事项。
 
 
 
  从上可知,该网站是不希望任何爬虫索引它的内容。所以如果在谷歌中搜索site:somesite.com时是得不到任何结果的
 
下面我们来看一看国内某SNS网站的robots.txt是如何写的:
 
 
 
# Robots.txt file from http://www.马赛克.com
 
 
 
# All robots will spider the domain
 
 
 
User-agent: *
 
 
 
Allow: /
 
 
 
Disallow: /profile.do*
 
 
 
Disallow: /getuser.do*
 
 
 
   这两条disallow,第一条禁止了类似/profile.do?xxxx=xxxx这样的网址被索引到,这个是用户主页,而第二条类似的,是搜索用户页,这两条的意思是,所有的搜索引擎你爬其他的可以,千万不要爬用户的数据啊......看上去没有什么问题,至少对于良好的爬虫来说,是这样。但是安全就像妹子,有时你觉得你得到了她,但是也许就在不经意间你就失去了。
 
 
 
  言归正传,我们来看看该SNS的手机无线页面的robots.txt是咋样的:
 
 
 
# Robots.txt file from http://www.2cto.com
 
 
 
# All robots will spider the domain
 
 
 
User-agent: *
 
 
 
Disallow:
 
 
 
    可以看到该无线站点的配置是所有的页面都能被爬虫爬取。这个暂且放在一边,我们先来谈谈无线站点的登录态。
 
 
 
    首先,HTTP协议是一个没有状态的协议,现在网站的登录态Seesion大多依靠Cookie实现。
 
 
 
    但是呢,以前的手机浏览器并不是所有的都能够支持Cookie的,那么如何实现登录态的保持和类似保存书签的功能呢?
 
 
 
  人们一般采取的是在URL里面添加某些表示字段来表示用户身份,如在登录后访问网址时带上了?XX=TSYq82hO7UbJOMkXUX4bTA 字段,服务器端再通过取该字段来验证用户身份,而无需要求用户重新登录。
 
 
 
     如果有熟悉搜索引擎的搜索命令的人,结合我上面所说无线登录态和无线站点robots.txt就应该知道我下一步可以干什么了。
 
 
 
     通过谷歌搜索,我们得到了一批带有该字段的网址,然后随便点击一个,我们就得到了她的登录态:
 
 
 
 
 
 
     目前我查看了下该SNS网站无线站点的robots.txt已经更改为disallow:/ 禁止搜索引擎给索引到了,所以各位暂时不用担心自己的账户被别人登录。
 
 
 
     但是该站点的甄别字段有效期特别地长(也许是书签功能的缘故)...所以已经被索引到的内容仍然具有登录态,所以上面搜索到的用户,任何人登录,都能获得她的登录态。
 
 
 
      而像某些无线站点,其使用甄别的有效期不长,因此即使被索引到了,但是有效期一过用户带着有该字段的链接访问,仍然需要用户重新登录
 

 
      因此,对于良好的爬虫,我们应该采取的安全策略是:
 
 
 
  首先:禁止某些敏感目录或url被爬虫爬取到,如上面的/profile.do* ,/cgi-bin/,/admin/等等。
 
 
 
  其次,对于无线站点的登录态有效期应根据业务的需要设置,不能过长,有效期一过应要求用户重新登录验证。
 
 
 
     上面的讨论仅限于那些有瑞雪精神的爬虫,对于某些不瑞雪或者是初学者学写的爬虫,根本就不理会robots.txt对访问目录的限制,膝盖中枪的爬虫有比如YoudaoBot, HuaweiSymantecSpider等等,这些爬虫不会爬取robots.txt中的内容,那么我们该怎样做呢。
 
 
 
     一般可以采取在服务器中配置禁止该网段IP访问,如在apache服务器配置文件中加入:
 
 
 
  # deny from Sogou web spider
 
 
 
   Deny from 220.181.125.64/29
 
 
 
   Deny from 220.181.94.192/26
 
 
 
    这样就可以做到既防君子,又防小人的效果,具体IP和行为可以查看服务器log得到,在某些目录访问频繁的IP,很有可能就是爬虫的IP,如果不想让其访问,就可以将该IP封掉。
 
 
本文来自腾讯大讲堂(DJT.QQ.COM),转载请注明出处。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论