Nov 192006
 

  今天发现自己的Blog打开非常慢,检查服务器负载和连通性未发现任何问题,然后检查了一下web日志。发现有大量的并发访问,导致apache超出预设的连接数限定了。我的apache是直接使用的VPS application的template,应该是CentOS自带的httpd,未做任何优化,估计MaxClients是256。以为小小的一个Blog不会出现很大访问量,没想到这么快就被搞爆了。大体查了一下日志发现绝大多数都是下载我Blog上几个MP3的,尤其是近期比较热门的梁静茹的《暖暖》,而这些下载绝对不是看到我的帖子之后按链接来的,因为不可能有那么多人看我的帖子。从access_log的referer字段来看,百度的MP3搜索是元凶,是这个搜索引擎收录了我贴的mp3的链接,然后大多数在mp3.baidu.com找歌的人自然就找到我的Blog来了。去百度看了一下,《暖暖》的链接第一页就有我的站,想不热门也难了。

这就是传说中的盗链了,再不想想办法估计我的Blog流量要引起我们IDC的兄弟们的注意了,呵呵。
解决方法原理很简单,根据Referer字段设定条件禁止访问,具体操作起来就是使用了apache的SetEnvIF来设定环境变量,然后通过访问控制来做禁止,很快,如下代码就出来了:


SetEnvIf Referer “^https?:\/\/203.191.145.100(\/|$)” prevent_hot_link
SetEnvIf Referer “^https?:\/\/s9y.dawnh.net(\/|$)” prevent_hot_link
SetEnvIf Referer “^https?:\/\/blog.dawnh.net(\/|$)” prevent_hot_link
SetEnvIf Referer “^https?:\/\/www.s9y.dawnh.net(\/|$)” prevent_hot_link
Order allow,deny
Allow from env=prevent_hot_link

除了我设定的几个自己的域名,禁止所有Referer,因为只要是通过浏览器访问,Referer肯定是来自你访问的站点,而通过搜索引擎的访问,Referer自然是搜索引擎的页面。
加上这些条之后,发现日志里所有Referer有异的访问HTTP Response Code从200都变成403了,前者是成功返回,而后者是Fobbiden。成功。

Update:发现歌曲不能直接点链接播放了,检查了一下日志发现如果浏览器直接点mp3的链接,调用WMP在线播放时,Referer为空,所以同样被禁止了,于是规则加一条:

SetEnvIf Referer “^$” prevent_hot_link

ok,搞定!

Update:又发现,这两天我的小Blog平均每天流量10G,恐怖,看来放mp3要谨慎。

Update:《暖暖》第一页已经看不到我的站的链接了,另发现mp3.baidu.com搜索结果中对于齐豫的《幸福》这首歌唯一的链接竟然是我的Blog的,而这唯一的链接也让我搞失效了,呵呵。

  7 Responses to “无良的百度MP3搜索”

  1. 不要这么小气嘛,哈哈。不过看来baidu确实有些恐怖的。
    幸福,我从baidu可以顺利下载呀。 :-)

  2. 嗯,我总是觉得你的空间访问速度很慢,是这个原因?

  3. 老大你的问题恐怕是臭名昭著的网通联新的连通壁垒问题。

  4. 本来自己在VPS上玩BLOG的时候是直接对于apache的配置文件做修改来实现的,也就是通过对于传递到PHP的环境变量中的Referer字段的判断来实现,具体可以看这篇文章无良的百度MP3搜索,然而现在在虚拟主机环境下就没有这么随心所欲了。

    然而Dreamhost对于.htaccess的支持和mod_rewrite的支持,使得我可以通过URL Rewrite实现同样的功能,具体方法也很简单,就是在.htaccess中写入如下语句块

    RewriteEngine On

    RewriteCo

  5. Saged aѕ ɑ favorite, І likе yoսr site!

    Ƭake a look att my website Derma Active Eye Serumm – dermaactivecream.net,

  6. Wow that ѡɑs strange. ӏ just wrote аn extremely lοng comment Ьut after I clicked submit mʏ ckmment didn’t аppear.
    Grrrr… ԝell I’m not writing all that ߋνeг aǥain. Anyway, just waanted too saay wonderful blog!

    Alsso visit mү web site :: Testosterone Boost

  7. I սsed to bbe аble tߋ find gοod information from your articles.

    Stop Ƅy my weblog: HGH XL (Buddy)

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>