※注:現在はbotによるTrackback URLの自動収集が行われているので、この方法を使用してもスパムを回避することは出来ません。
NP_Trackback バージョン2を導入することで、ある程度回避が行えますので、こちらを利用されると良いでしょう。
以前そのうち書きますといっておいてすっかり忘れていたエントリです^^;
ただし前提条件として、だとかさんのTrackback URLをすっきり短くするで紹介されている、Trackback Ping Receiverを導入している必要があります。
前述のTackback Ping Receiverを導入し、NP_Trackbackを修正すると、当然TrackbackへのURLがTrackback Ping Receiverのものになります。これを利用して、Spamを防ぎます。
今現在確認されているスパマーは、全てaction.phpへの直アタックによりTrackback Spamを投げてきます。(そのため、ドメインのトップにNucleusを置いていると攻撃されやすいようです) しかし、記事自体にはTrackback Ping ReceiverのURLになっているわけであり、正しいTrackbackを受信するときは、action.phpへのURLではない、ということになり、それはつまりTrackback Ping Receiverを経由したTrackbackでなければ、正しいTrackbackではない、ということになります。
というわけで、action.phpからのTrackback受信を無効にしてしまえばよいということになります。action.phpからのTrackback受信は、NP_Trackback.phpのdoAction関数に、何もオプションが渡されず実行されたときに処理されるようになっていますので、ここを書き換えます。
(※ちなみにTrackback Ping Receiverでは、NP_TrackbackのhandlePingXML()関数を直接コールしているので、ここを書き換えても問題はありません)
1.エディタでNP_Trackback.phpを開き、doActionで検索します。(NP_Trackback.php Ver.1.23bj7では116行目)
2.case ”: と書いてある部分を書き換えます。
改変前:
case ”:
$this->handlePingXML();
break;
改変後:
case ”:
// _hacked.
ACTIONLOG :: add(INFO, ‘Trackback: Illegal trackback was rejected. Trackback from ‘.requestVar(‘url’).’.’);
break;
たったこれだけの修正で、不正なTrackbackを無効化することができます。(ついでに管理操作履歴にも載せるようにしています。不要な場合はACTIONLOGの行をコメントアウトしてください)
ARGAS.NETの場合、この修正でかなりのTrackback Spamをはじいておりますので、同様の悩みを抱えている方は試してみてはいかがでしょうか。