2007年10月23日

迅雷, Lighttpd, 防盗链

作者 非鱼

今天在查看服务器所用的Lighttpd的更新的时候,顺带看了一下它的博客上关于1.5beta版更新日志下面的回复,看到一段有趣的留言:

Greate work! I’ll upgrade my server this week. BTW, the mod_secdownload is such good thing which let kick off those bandwidth thief from china who using download client called "thunder"(Google China even invests this f*ck company).

简单翻译一下:我会在本周升级我的服务器。顺带说一句,这个mod_secdownload模块实在是太棒了,它可以让我踢掉那些来自中国的偷带宽的贼,他们使用一种叫“迅雷”的下载软件。(Google中国还投资了这个该死的公司)

迅雷真是名声在外啊。

顺便去查看了一下这个模块的工作模式。对于防盗链,通常有两种方式:使用HTTP Server进行认证并负责传送文件或者使用自己的程序进行认证并负责传送文件,前者会使得认证方式变得简单,你没有办法使用高级的认证方式,但是HTTP Server传送文件可以占用更少的系统资源。后者你可以自行设计任意的认证方式,但是用程序发文件会占用更多的系统资源(CPU和内存)。这个模块使用了另一种方式:由程序进行用户权限的认证,如果用户有权限下载,就生成一个临时地址将用户跳转过去,然后剩下的事由HTTP Server来搞定,这样即保证认证方式的灵活性,又保证占用更少的系统资源。

最终生成的URL中间会插入一段md5码,该URL是不可重用的,因此避免了被迅雷作为镜像服务器的问题。