« MTプラグインを簡単に作る方法 | メイン | 速報!MT4出荷開始! »

2007年7月27日

スパムトラックバックと戦うのだ![ カスタマイズ ]

最近、やたらスパムコメント/トラックバックが多い。
多すぎて、ロリポップさんにCGIを止められたり。
もう、いい加減この現状をどうにかしたい!
ということで、Junnamaさんの

# テンプレートから「<$MTEntryTrackbackData$>」を削除する。これで「自動検知」できなくなる。
# トラックバック、コメントCGIをリネーム。単にリネームするだけでなく拡張子も変えてしまおう。トラックバックCGIについては更にhtmlファイルに見せる技を使おう。
# コメントは「確認」画面を経由させるようにして直接ポストできないように。但しJavaScriptオンの場合は直接ポストできるようにする。そもそもJavaScriptオンの人は意識せずに済むし。
# 古いエントリーのトラックバックやコメントを閉じてしまおう。攻撃のターゲットは少ない方がいい。
# トラックバックやコメントのCGIに対してGETリクエストを制限しよう。

このノウハウを取り入れてみたのですが、スパムトラックバックだけは、相変わらずくる。
これは、なんとかせねばと、こんな方法を考えてみました。

まず、以下の内容で「tb.js」を作ります。

function makeTBURL(cgiPath, id, script) {
    var url = cgiPath + script + '/' + id;
    return url;
}

これを、例えば、ドキュメントルートにでも保存しておいて、次に個別エントリーアーカイブの中の

<$MTEntryTrackbackLink$>

このタグを

<script type="text/javascript" src="/tb.js"></script>
<script type="text/javascript" language="javascript">
<!--
var url = makeTBURL("<$MTCGIPath$>","<$MTEntryID$>","<$MTTrackbackScript$>");
document.write(url);

//-->
</script>

こんな感じで書き直します。
こうすると、HTML内には、トラックバックURLを構成するための部品だけが、並んでいる状態になります。
ブラウザで表示すると、きちんと表示されるという仕掛け。
ブラウザ側でJavaScriptをオフにしていると表示されないですけど、ね……。

昨日から様子を見ていますが、まだ1つもきてません。
結構効果あるかも!


MovableTypeするならおすすめです!

投稿者 CHEEBOW : 2007年7月27日 14:10