NEKOB-log-E

Play Games, and Follow the Rules

Flower

Wordspew Live Shoutbox 的 Spam Patch

我很喜歡 JalenackAJAX Shoutbox, 但是Spammer快把我搞瘋, 我不管換什麼版本, 裝了Bad Behavior, 這些Spam從沒有遠離過我, 當然Ellen也是受害者.

我一直觀察這些Spammer的行為, 從早期沒有Referer, 到後來會隨機挑一個你的頁面來當Referer, 在.htaccess或是httpd.conf裡頭檔Referer只是暫時止痛, 隔幾個小時Spammer又會再度出現, 好好的快樂小字報被Spam淹沒實在是一件很糟糕的事情.

我想過把SecureImage掛到Shoutbox上, 可能是我對WordPress的coding style不瞭解, 加上一直也沒專心去看, 所以一直找不到頭緒, 今天下午趁著等fsck的時間試著裝新版的Wordspew跟Bad Behavior, 結果沒隔幾個小時, Spam又來了.

這會兒我了!!

愛因斯坦說: 「忍無可忍就無須再忍!」, 所以我改寫了一部份, 首先是讓Wordspew能記錄ip, 然後提供一個額外的table去記錄spammer ip, 當你發現你的Wordspew中出現了spam, 只要簡單的在管理介面按下"Spam"按鈕, 就可以把該死的Spam跟他該死的IP給丟進黑名單中, 然後你再也不用煩惱這個IP的Spammer了.

缺點是: 必須看到就殺, 殺久了Spam就會越來越少.

注意事項是, 若你原本就有Wordspew的Table, 看是要手動自己加上欄位, 或是清掉重新安裝一次都可以. 以下是建table用的SQL

  1. CREATE TABLE `wp_liveshoutbox` (
  2.   `id` mediumint(7) NOT NULL auto_increment,
  3.   `time` bigint(11) NOT NULL default '0',
  4.   `name` tinytext NOT NULL,
  5.   `text` text NOT NULL,
  6.   `url` text NOT NULL,
  7.   `ipaddr` varchar(16) NOT NULL,
  8.   UNIQUE KEY `id` (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  1. CREATE TABLE `wp_liveshoutbox_spam` (
  2.   `ipaddr` varchar(16) NOT NULL,
  3.   `lastupdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  4.   UNIQUE KEY `ipaddr` (`ipaddr`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

希望對大家有幫助, 有抓回去用的留個Comment通知一下吧! 當然有問題也歡迎發問.


Wordspew Live Shoutbox: Patched by nekobe

Tags: ,

Comments
  • [...] 繼上一篇改寫過後, 相繼檔掉了一些Spammer’s IP, 但是慢慢發現了幾個小困擾. 首先是一個人收集Spammer’s IP很緩慢, 以為已經檔掉了大多數的Spammer, 但是可能過幾天又跑出一些, 這是第一個問題; 第二個問題是, 我”管理”的Word Press其實有兩份, 每次都要下指令把我這邊的Spammer’s IP跟Ellen的做Sync就覺得很煩人, 所以才有了這個版本的誕生. [...]

  • 留言版再開 « roid in TW 二月 4, 2009 at 06:00

    [...] 分類於 Life — roidtw @ 09:14 加上了 nekobe 前輩的 patch, 雖然我不認識你, [...]

  • Threaded commenting powered by Spectacu.la code.