The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

介紹好用工具:Stop Forum Spam (有效阻擋垃圾訊息入侵)

我的部落格偶而會遭受廣告機器人攻擊,常常有一些奇怪的英文廣告被發表在文章的回應裡,每次看來源 IP 都是從美國/加拿大來的居多,我想大多是透過機器人自動攻擊的,由於時常要刪除這些廣告留言也覺得蠻煩的,上網找到一個 Stop Forum Spam 網站,這裡記錄了許多全世界到處在論壇散佈廣告訊息的 IP 位址、常用的帳號、Email 等,有趣的是來我這發表廣告的 IP 位址都會出現在這裡,此網站提供簡易的 API 方便透過程式整合,所以就寫了個小程式保護我的部落格留言機制。

若要透過線上的 API 查詢來源是否為惡意 IP 位址可以到 http://www.stopforumspam.com/apis 查詢 API 的用法,你只要簡單的透過 HTTP GET 就可以取回一個 XML 內容,內容格式如下:

<response success="true">
<type>ip</type>
<appears>yes</appears>
<lastseen>2007-09-18 05:48:53</lastseen>
<frequency>2</frequency>
</response>

只要收到的資料的 appears 標籤內容為 yes 就代表這個 IP 可能是廣告 IP 來源,就可以進一步阻擋該 IP 留言的動作,以下是我利用 WebClient 類別撰寫的簡易程式碼:

// 檢查是否為惡意 IP
using(System.Net.WebClient wc = new System.Net.WebClient())
{
    string strXML = wc.DownloadString(
        "http://www.stopforumspam.com/api?ip=" + Request.UserHostAddress);

    if (strXML.Contains(@"<appears>yes</appears>"))
    {
        Response.Redirect(Post.RelativeLink.ToString(), true);
    }
}

夠簡單吧,短短幾行就能保護網站免於廣告訊息的殘害。

相關連結