# 雅虎通的Y!Pingme服务
几天前,车东提到了雅虎中国发布的Y!pingme服务。
什么是Pingme呢?原本想抄一下它们首页的文本,结果发现介绍文字居然是一大块GIF图片,*?^%$#@?!,disable掉图片,居然没有ALT的描述(建议网站开发人员参考W3C的Web Content Accessibility Guildines的text-equivalent一节)。那就抄车东写的解释吧(让我们赞美一下“代码重用”:p):
什么是PingMe呢? 就是一个web界面的雅虎通留言簿,没有注册过雅虎帐号的用户只要点击网站上的PingMe图标
就可以直接与你聊天了。过几天,你的雅虎通上忽然跳出一个:webchat####用户,那就是来自网站的用户留言了。
恩,就酱紫,简单明了。
让我感到好奇的是那个Pingme的图标和链接在网页上的代码,于是view source了一下车东的页面,最主要的代码是这样的:
< a xhref="http://cn.pingme.messenger.yahoo.com/webchat/ajax_webchat.php ?yid=[雅虎通ID]&sig=[40位ASCII字符]"
就是说pingme的URL带两个参数,一个是yid,就是用户的yahoo ID,一个是sig,长度为40的ascii字符串,估计是sha1哈希值。
咳,不知道是因为做过两年电信的SP呢,还是因为这方面比较paranoid一点,看到这段HTML,我立刻就想到:假设有个网页爬虫,爬一遍陶宝和雅虎中国的社区站点页面,就能收集到一大堆yahoo ID和pingme的URL,而且能够知道这些用户是
- 是雅虎通的活跃用户;
- 有自己的网站/网页 ;
- 使用pingme服务;
- 多半是淘宝店主(这可以根据页面URL和页面内相关链接或者关键字发现吧);
- 如果是淘宝店主,稍微分析一下页面,应该能发现她/他卖的是什么产品吧(谁实证一下是否可以?;));
就可以对他们进行非常有针对性的SPAM营销了。
稍等一下,做到这点的前提条件之一是相对于yid的那个sig必需是固定不变的,恩,也许这个URL是动态生成的?看输出到浏览器的页面代码是不行的,那就自己申请一个Pingme服务看看 …… 哈,还真是固定的,申请页面的第二步就直接给出了HTML代码,跟上面的一样(除了是我自己的yid和一个不同的sig值)。那么,上述的SPAM计划应该是可行的了。
给Pingme团队一个建议:提供用户javascript代码,Javascript在页面装载后到服务器获取一个有时效的sig值,再返回这段HTML代码,这样,就算网页爬虫拿到了今天的yid和sig组合,但是过一天或者过半小时就失效了。
当然,这么做可能会引起比较大的改动和其他问题,比如对服务器压力会增加,怎么处理这些链接在web cache上的更新,怎么处理Pingme主人正在进行的聊天,保证合理合法的聊天不会被中断等等。
当然的当然,我这是站着说话不腰疼……
说到最后,这是我的Y!Pingme :-)

October 12th, 2006 at 2:23 pm
的确暴露了一些问题
October 15th, 2006 at 10:17 pm
厉害,看问题就是不一样…..
网络爬虫,我还真有兴趣……..
可惜……
借我一把刀,劈我两刀,变成三人了….时间就多了….
学英语真耗时间…..特别是为考试而学习……..
March 5th, 2007 at 7:53 pm
其他的参数呢
啥意义