作者: sadly 出自: http://www.phpx.com

昨天 4ngle 找俺 要俺帮他测试一下trackback防spam的功能:( 好无聊,原来的那些js早没了,随便套了一个php的httpclient类库给他写了一个, 发现他的程序效果还是不错的。

我不晓得机制是什么样,我再说一点点。 trackback 和 comment 是不有同的,对吗? 往下看~

不知到有没有人考虑过,trackback应该从哪里发出来? 如果我在一篇blog里引用了你的文章,要对你发出trackback, 那么通常向你的服务器发trackback的应该是我的BSP的服务器, 它的ip地址和trackback里面url的ip地址应该是有一致性的吧?

如果有一个trackback发出的 ip 地址是 202.108.1.1 , url是 www.abc.com/blog/1.htmlwww.abc.com 的ip地址是 203.121.1.1 那很显然,它大概是伪造的。

如果你在用一个很大的BSP,那么不排除这种可能性, username0.bsp.com的ip地址是 202.108.1.1 username3.bsp.com的ip地址是 202.108.1.2 username5.bsp.com的ip地址是 202.108.1.3 而系统发trackback的时候使用的是 202.108.1.5 ,因为大的集群里由于负载均衡等等的需要可能 会存在这种分工,进出的ip不一样,但是他们的差异会有多大呢?

多动脑子,少动嘴:) trackback 没有罪, 开放也没有罪, 但是不爱思考的程序员有罪。


刚刚在dreamhost测试了一下~ www..com 的ip地址是 64.111××× 而 www..name 的ip地址是 208.××× 用同样的wordpress程序测试,得到的服务器出口的ip是 64.111.*** ,还好,出口的ip是一致的。

如果改用白名单来控制哪些BSP / IP地址是可信的,那效果估计比过滤关键词,ip,网址之类的要 轻松不少吧, 还有上次说过那个问题 §时间§