今天下午一个小时之内来了好几个垃圾 trackback,来自 .ro 和 .de 域名的。搜了一下,在 href="http://wordpress.org/support/topic/19950">http://wordpress.org/support/topic/19950上有一些讨论,提到的插件我懒得去试了,思考一下,spammer 是怎么发现我的 trackback
地址?人工的当然不在考虑范围之内,应该是从这几个地方:
- 模板里面有 <rdf:Description> 会写出 trackback 地址
- Post 后面有 Trackback 的链接
- 多数模板默认的 trackback 地址 permlink + 'trackback/',或者
blog-url/wp-trackback.php?p=NN 这样的形式
这三种都是能够自动扫描的。
我决定先堵塞这三个途径试一试,不用插件。前两个很好改,比如我的是 index.php 模板里面有 rdf
描述,把它删除就行了。Post 中的也好改,先改成文本,不用 <a> 标签,注意那里是用
trackback_url()
函数生成的。第三个就稍微麻烦点,我在 wordpress 目录里面搜索 trackback 看了半天,最后定位到 'trackback/'
这个字符串,只 grep 它:
~/joyus.org/blog $ grep -nr 'trackback/' .
./wp-includes/classes.php:1193: $trackbackregex = 'trackback/?$';
./wp-includes/comment-functions.php:502: $tb_url = trailingslashit(get_permalink()) . 'trackback/';
./wp-includes/comment-functions.php:518: xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
只要改前两个,把 "trackback/" 都换成 "tb/",第二个修改需要到管理界面中 Permlinks 标签上
Update 一下才能让 rewrite 规则更新,我试了一下,修改后 trackback 功能工作正常。明天再看看有没有
spam,没有的话这就算个简单的
hack 了。
DreamHost 稳定性真的很差,刚刚又被重启了一次 :(
~ $ uptime
08:18:33 up 2 min, 1 user, load average: 1.27, 0.42, 0.14
0 Comments so far