2007年May月 发布的文章

该说百度牛还是弱呢…

有那么一段时间我站上面的 next page 插件出问题了, 然后 last page 显示的是 999999 页. 我在前段时间修正了这个问题, 之后变态的事情就出现了.

几乎是不约而同地, yodao 和 baidu 都对我站上面的认证码链接表示出了浓厚的兴趣, 不停的来抓他. 我用的是 secureimage, 因为这是一个 wp 插件而我懒得写 lighttpd 的 rewrite 规则, 所以从外观上面并不能判断这其实是一个图片链接. 问题在于, secureimage 插件为了使得认证图片不要被 cache, 在 url 里面加入了随机数, 再加上 next page 插件的问题, 一下就在站点上面造成了无数无意义链接.

最先犯傻的是 yodao, 他在劳动节像勤劳的蜜蜂一样连续不断抓了我这个 index.php?image= xxx 的页面很长时间, 用过 secureimage 的应该都知道这个东西生成图片的时候是调用外部程序的, 性能很是差劲. yodao 辛勤工作的唯一结果就是把我机器 load 长时间保持在 1 以上, 加上抓走了很多认证码图片. 终于有一天我忍不住了给 yodao 的开发人员打电话抱怨, 于是很快 yodao bot 就不来做无用功了.

本来以为事情就这样结束了, 没有想到的是 baidu 忽然开始发飙, 重复了和 yodao 一样的行为, 系统负载又变成很高. 没办法, 谁让咱不太认识 baidu 的开发人员呢, 而且自己站点性能低下这个事情说出去也比较没有面子, 咱躲还不行么. 于是折腾了几天, 尝试了几种插件以后, 最终确定了用 reCAPTCHA 加 Simple trackback validation 插件的组合. 总算从根本上面搞定了这个问题.

现在 log 里面就只有 baidu 的踪影了, 这个事情已经过去好多天了, 但是 baidu 还是不屈不挠的继续抓我的 image 页面, 这么多天以来不知道抓走了多少相同的错误页面, 为了减少无意义的流量, 我甚至专门写了一个 wp 插件来对 image 请求直接返回 403 .

如下的这段 log 反映了 baidu 最近的行为. 估计在 baidu 的抓取队列里面还堆着成千上万的这样的错误 url..

202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:36 +0800] “GET /wordpress/index.php?image=1f32744dea0142b191ca8fa2b6a32b5d&paged=10 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:38 +0800] “GET /wordpress/index.php?image=d11c586c26da2f5bf003e47d4f0e5ed4&paged=999988 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:40 +0800] “GET /wordpress/index.php?image=4205623c0643018def4d3090b0ce9470&paged=9 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:42 +0800] “GET /wordpress/index.php?image=2af9efafa040d8bf35055128267feffa&paged=999974 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:44 +0800] “GET /wordpress/index.php?image=70b7ccfef46bdd7d25daf7713a57fc7d&paged=999974 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:47 +0800] “GET /wordpress/index.php?image=1b45a7417b7f143bde8ef8c8644c667c&paged=9 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:48 +0800] “GET /wordpress/index.php?image=96270b839056e6e14160df7b91f8a317&paged=999958 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:50 +0800] “GET /wordpress/index.php?image=3842383fd4cc883525946474ba398090&paged=999991 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:52 +0800] “GET /wordpress/index.php?image=da609f6198c13d44005e90ed628ac77b&paged=7 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:55 +0800] “GET /wordpress/index.php?image=aaa27befe711203f75b84440f5e6547e&paged=999998 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:57 +0800] “GET /wordpress/index.php?image=2b5c35a6df7c37c5eccb48a742f83545&paged=20 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:13:59 +0800] “GET /wordpress/index.php?image=08e6b143f587d1669ad94cbe0db253cb&paged=5 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:14:03 +0800] “GET /wordpress/index.php?image=0b4070b3df714b80565d17cd9f275221&paged=999986 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:14:04 +0800] “GET /wordpress/index.php?image=783abb820d940bf502c1badd6fe0cc6a&paged=6 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:14:12 +0800] “GET /wordpress/index.php?image=d8cabc7a58980ac774bb3f90d63f5e0a&paged=999970 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”
202.108.22.144 blog.kangkang.org – [29/May/2007:16:14:13 +0800] “GET /wordpress/index.php?image=2658d7ca7669155e82c546a6743a3bf4&paged=11 HTTP/1.1” 403 0 “-” “Baiduspider+(+http://www.baidu.com/search/spider.htm)”

但是很令人惊讶的是 baidu 抓取的优先级却做的还可以, 在 baidu 上面搜索这个站点上面的页面, 能发现更新速度还是很及时的. 并没有因为要抓取大量垃圾 url 而延迟抓取真正更新的页面. 不过, 有本领做好优先级固然很好, 但是你真的没有本领识别出来这些都是相同的垃圾页面吗? 这方面 Googlebot 就做的很好, 更新速度也还可以, 垃圾 url 现在基本已经不抓了. Yahoo slurp 现在偶尔也会来抓垃圾页面, 不过没有百度积极而已.

最后: 各位看我 blog 的大爷们,如果你是 baidu 的或者你认识 baidu 管 spider 的哥们, 麻烦帮忙说一声,把抓取队列里面的垃圾都删掉吧…

lighttpd 1.4.15 $HTTP[“url”] condition is broken

This has been happening on my blog for a long time, but it didn’t draw my attention until someone bugged me about a download link on my server yesterday. It is an $HTTP[“url”] conditional dir-listing.activate statement , however it returned 404 instead of listing the directory content.

After a short investigation, I found that in configfile-glue.c


307: case COMP_HTTP_URL:
308: l = con->uri.path;
309: break;

con->uri.path is always an empty string, thus $HTTP[“url”] condition is always false.

I’m not familiar with lighttpd architecture, therefore I simply changed uri.path to uri.path_raw and everything seemed to be fine. According to lighttpd trac, the uri.path statement has been there since 1.3.x, so there must be a logic change in lighttpd core code, resulting an empty uri.path at that time. I’m curious why such a serious bug has not been reported since it was introduced. Are people all busy playing with lighttpd 1.5.0?

Vista小技巧几则 – 删除文件, 禁用 zip 目录, 加快拷贝移动目录速度

1: 如何删除删不掉的文件

来源: http://blogs.msdn.com/tims/archive/2006/11/10/windows-vista-secret-11-deleting-the-undeletable.aspx

在 Vista 下面有时候会遇到死活不能删除的文件,比如以前安装的 Vista 系统剩下的 Program Files 目录和 Windows 目录,总是说没有权限,用 XP 下面的老办法点安全 tab 给自己加权限则总是失败。在网络上面搜索了一下,原来是需要用命令行工具获得权限。

如下两条命令就可以将删不掉的 %1 目录或者文件变成 administrator 可以删除的。

takeown /f %1 /r /d y
icacls %1 /grant administrators:F /t

PS: 我觉得这个应该是 Vista 的 bug, 没有理由不能在图形界面里面完成获得权限这个工作的,命令行工具虽然好用,但是不搜索一下还真搞不定。

2: 禁用 zip 目录

来源: http://www.annoyances.org/exec/show/article03-202

XP 下面只要 regsvr32 /u zipfldr.dll 就可以了,但是 Vista 下面的 zipfldr.dll 没有 DllRegisterServer 入口,所以需要手动去删除注册表项。需要删除的两个注册表项是

HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}
HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}

或者直接下载这个注册表文件双击导入即可。

3: 加快拷贝移动目录速度

来源: http://mytechweblog.blogspot.com/2007/04/slow-file-copymove-in-vista-here-is_05.html (有时会被 GFW!)

Vista 下面拷贝和移动文件都异乎寻常地慢,有传说 Microsoft 出了个补丁,但是貌似打上没有什么效果,终极解决方案还是这个:

打开控制面板 -> 程序和功能 , 左边有个打开或关闭 Windows 功能, 点进去, 去掉最下面的 “远程差分压缩” 前面的勾,确定即可。

启用 reCAPTCHA

CAPTCHA 这名字听起来很诡异,其实中文里面我们管他叫图片认证码,是用来防机器人注册发帖的。现在互联网上面机器人遍地都是,没有个认证码挡着,用不了多久就会被灌满垃圾广告。这东西最早似乎是卡内基梅隆大学的人研制的,然后把技术提供给了 Yahoo 之类的地方。如今 CAPTCHA 可谓是遍地开花,各种开源的商业的实现一把一把,还有 QQ 的中文认证码之类扩展版本。

这个小 blog 也尝试过一些图形认证码插件,比如 SecureImage 之类,但是最后还是放弃了,SecureImage 的性能实在是不敢恭维,Yodao 和 Baidu 不知道为什么看上生成图片的那个链接了,总是没完没了地抓它,虽然频率并不是非常高,大概也就每秒一次,但是系统的负载已经很高了。最后我终于无法忍受,换成了另外一个基于 Javascript 计算的 WP-HashCash。然后我就发现原来支持 Javascript 的机器人已经很多了,以前用 SecureImage 的时候,几乎没有 spam,WP-HashCash 用了以后每天进来我都要从一大堆留言里面捡出来有用的批准。实在是非常不爽。

reCAPTCHA 是卡内基梅隆大学的一帮人搞出来的,它的技术并没有什么先进之处,但是创意有点意思。世界上面有很多将图书电子化的计划,基本是把书籍扫描了以后用 OCR 软件识别。有些情况下面 OCR 软件自己觉得某些词的识别结果并不是非常有把握。通常情况下面是通过雇佣劳力来肉眼校对。reCAPTCHA 项目认为这个工作不妨交给全世界大量填写认证码的人来完成。

一般图形认证码系统都是只生成一个单词的,reCAPTCHA 生成的图片里面有两个单词,其中一个是机器生成的,有正确结果的单词,另一个则是扫描出来的有问题的单词,这个词没有正确结果。如果用户提交上来的结果里面机器生成的那个是对的,那么系统就认为另外一个也很有可能是对的。一幅扫描图片展示给多个用户如果结果都是一样的,他就将这个结果作为最终校对结果。这样就实现了利用人力来分布式校对文稿的目的。更具体的细节可以看 http://recaptcha.net/learnmore.html

reCAPTCHA 对一般用户使用没有限制,但是为了防止滥用,也要像 Google Maps API 那样用一个 Key 来限制一下,在 recaptcha.net 上面可以免费申请。同时还有常见系统的认证插件,比如这个 blog 使用的就是那里提供的 wordpress 插件。

PS: 各位留言的时候要注意一下,因为 reCAPTCHA 的目标是校对书籍,因此认证码是大小写敏感的,有时候你还能看到里面有标点符号,这时候也麻烦你把标点符号输入了。虽然这时候基本能判断出来有标点符号的那个是扫描图片,就算填错也可以过认证,但是出于校对书籍的需要,还是填写全面比较好一些了。

终于又搞定了 MTU 问题.

为什么要说又呢? 以前似乎搞定过一次,但是这次不知道链路中间过了什么, MTU 又小了, 导致我 1400的 MTU 又失败了, 刚才听了一阵子包终于发现是这个问题,于是把 MTU 缩小到 500. 发现终于可以用了…

最近评论

时光机

其他