Oblog检测搜索引擎的一个问题

  今天上班的时候,有一个用户反映博客登陆不了了。

  因为最近做了整合方面的改动,我第一反应是难道这方面有问题?可是自己测试什么问题都不存在。后来用户抓图来看,是登陆表单的位置一片空白。

  于是远程协助帮她处理。一般情况下,有人正常有人不正常都会是缓存的问题或者浏览器设置的问题。所以我首先做的也就是这两件事。可是处理之后问题依旧。在用户电脑上打开网页源代码,发现登陆表单是个JS脚本。代码输出正常的。该JS路径在我的电脑上访问就一切正常,而在用户的电脑上则访问不到。测试的时候进一步发现,用户的电脑上似乎只能访问我们博客系统的html静态文件,所以asp文件都返回404错误。

  这种问题以前确实没有遇到。只遇到过静态文件可以访问动态脚本不能访问的,那都是IIS的问题,服务器端的问题。于是要从代码下手了。

  打开login.asp(登陆脚本就是由它输出的),源代码头部首先就看到ChkSpider这个函数。我知道这是检测搜索引擎的,如果发现客户端是搜索引擎,直接截断输出。难道是这个有问题?,首先把这行代码注释了,刷新页面,登陆窗口正常显示了。

  后来用户又在访问User_Index.asp的时候遇到同样的问题,看来改具体文件不是办法了,打开Class_Sys.asp文件,找到ChkSpider这个函数,进入函数后直接让它Exit Function。再测,问题全都没了。

  这个问题一般情况下很难遇到,但是实际上几率并不算特别小,只要用户计算机名称包含了google、sohu、sina、soso、baidu、yahoo等字符串(不用严格等同于Spider的名称,只要包含相关字符串),就会被当作是Spider来处理。

  看来Oblog的这个检测逻辑需要改进一下了。要么,对常用Spider的名称做精确匹配,要么,就换一种方式来检测吧。这个本身并没有问题的代码,跟千奇百怪的计算机名称撞车的可能性还是很大的。

本条目发布于。属于所谓技术分类,被贴了 标签。
               

Oblog检测搜索引擎的一个问题》上有2条评论

  1. doubleaf

    刀刀你博客RSS输出有问题,本文的网址输出为http://wukangrui.netread-293.html/,少了一个/

    1. admin

      正常的呀???没少中间那个 / , 也没多后面那个 / 哦。

评论已关闭。