Home > ブログ > MT4のスパム対策を施してみた

MT4のスパム対策を施してみた

  • Posted by: hiro
  • 2008年1月11日 01:48
  • ブログ

まず初めに。1500件のスパムの中から友人であるすぽんじ氏のコメントが2件ほど見つかりうち1件は掘り出せました。
ですが、誤ってもう1件は削除してしまいました。申し訳ない('A`)

とりあえず自分で何度投稿してもスパム判定されるのでおかしいなぁと思ったら、Movable Type4から付けられたスパム判定の数値がプラスになっていたことが原因だった。
この判定をプラスにするとスパム判定の基準が厳しくなってよほど真面目で長くて有意義ななコメントでないと排除されてしまうようだ。
ましてや「テストです、にょろーん」などと意味不明なコメントを投稿していればそりゃスパム判定されるわな\(^o^)/

さてさて、そんなこんなでスパム判定は「±0」に戻し現実的なスパム対策を施してみた。

「mt-comments.cgi」をリネームする

基本中の基本。このプログラムをリネームするだけで海外からのロボットスパムがかなり減るとの事。
やり方は簡単。まず「mt-comments.cgi」を「nyoro-n.cgi」など.cgiの拡張子を残し適当に改名。

そして次にシステムにコメントCGIが変わったことを教えるため、以下の記述を追加「mt-config.cgi」を開き、最後の行にでも追加してくりゃれ

CommentScript nyoro-n.cgi

ここまではOKかな?このプログラム名は適当だから自分で好きな名前に改名してくりゃれ。
しかしこれだけではダメ、もといまだまだ甘いようだ。
何故ならソースを覗くときっちりとコメントプログラム名が記述されているからだ。ほらこんな風に⇒action="nyoro-n.cgi"
これでは優秀なスパマーのロボットにはバレてしまうかもしれない…
そこで、このコメントプログラム名をJavaScriptで隠すというなんとも素晴らしい技を発見したので教えよう。

JavaScriptでactionターゲットを偽装

まずインデックステンプレートにある「mt.js」に以下の記述を追加。

function mtCm() {
document.comments_form.action = "<$MTCGIPath$><$MTCommentScript$>";
}

次にモジュールテンプレート一覧でコメントフォームを選択し、中身を編集します。
以下の「action="<$MTCGIPath$><$MTCommentScript$>"」の下線が引いてある部分だけを削除して下さい。

<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" id="comments-form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">

↓こんな風になります

<form method="post" action="" name="comments_form" id="comments-form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">

そして、最後に</form>タグの次の行にJavaScriptの呼び出しタグを追加

	</form>
	<script type="text/javascript">mtCm();</script>
</div>

こんな感じ。これで「action=""」の空の部分に"<$MTCGIPath$><$MTCommentScript$>"が挿入されるって仕組みだ。JSって便利ねー!
ちなみに自分の場合、この通りにやったらエラーが出ちゃったので、何がおかしいのかなぁ~とタグと睨めっこしていたら、自分のスクリプトにはformタグ内に name="comments_form" の記述がなかったのです。
これがないときちんとJavaScriptの呼び出しに答えてくれず、"405 Method Not Allowed"とエラーではじかれるので注意。
405エラーなんて初めてみたよ/(^o^)\

ちなみにこちらのスパム対策は「MT4を運営開始する前に設定しておくと良い9つの項目」を参考に構築しました。
今度はスパムトラックバック対策でもやってみようかな。

Comments:3

Comment Form
すぽんじ@会社 2008年1月11日 17:23

サーバーのログを見ると、1年くらいまえに削除した掲示板のURLに、
ひたすらアクセスしてくる海外のホストが未だあるんだよね。

CGIのファイル名変更はやはり有効かと思われます。

MT初心者 2008年2月 5日 16:31

本当に参考になりました。
ありがとうございます。

hiro 2008年2月 5日 17:51

お役に立てて何よりです^^
ちなみに当ブログはこれを実施してからスパムコメントは0件です。
素晴らしい!

Trackbacks:0

TrackBack URL for this entry
http://rubedo.net/mt/mt-tb.cgi/19
Listed below are links to weblogs that reference
MT4のスパム対策を施してみた from Go ahead, make my day!

Home > ブログ > MT4のスパム対策を施してみた

Recent Comments
ウェブサーバーの容量が残り3MB
Googleの便利なツール
UTF-8対応メールフォームの設置を試みた
らくちんCDダイレクトプリント for Canonの不具合
給紙が頻繁にできなくなる酷いプリンタ
Links
Search
Feeds
Other tools

google pagerank

Googleボットチェッカー

携帯でブログを見る

Publicity

少女病:覚醒ノエシス

Counter

カウンター

Return to page top