コメントスパム対策その3

コメントスパム対策のために作成したモジュールで、クッキーを使用しない場合「コメント確認」画面に名前やURLが引き継がれない、という不具合があることが判明。なんとかその不具合を回避する対策を探ってみた。

導入したモジュールをじっと眺めてみると、「コメントの確認」画面のフォームの各入力欄(名前、メールアドレス、URL)は、javaスクリプトによってクッキーからデータを拾ってくる形になっている。確かにこれだと、投稿時にクッキーを使用しない設定を選んだ場合、次画面にデータを受け渡すことはできないわけだ。
一方、正常にデータが受け渡されているコメントの内容部分を見ると、 <$MTCommentPreviewBody$>というタグが使用されている。どうもこの <$MTCommentPreview?$>というタグによってプレビュー画面へのデータ受け渡しが可能らしいことに気づいたので、まずはこのタグをググってみるww
そして、megu’s blogで解決方法を発見。さっそくそれに倣ってモジュールの最終部分を以下のように書き換えてみた。

<script type=”text/javascript” language=”javascript”>
<!–
if (document.comments_form.email != undefined)
document.comments_form.email.value = ‘<$MTCommentPreviewEmail encode_js=”1″$>’;
if (document.comments_form.author != undefined)
document.comments_form.author.value = ‘<$MTCommentPreviewAuthor encode_js=”1″$>’;
if (document.comments_form.url != undefined)
document.comments_form.url.value = ‘<$MTCommentPreviewURL encode_js=”1″$>’;
if (getCookie(“mtcmtauth”) || getCookie(“mtcmthome”)) {
document.comments_form.bakecookie[0].checked = true;
} else {
document.comments_form.bakecookie[1].checked = true;
}
//–>
</script>

これで試してみたところ、クッキーを使わない場合でも無事、確認画面にデータが受け渡されるようになった。ほっ(笑)。ひとまず安心・・・。
ただし、いったんクッキー使用を選択して確認画面を表示したあとで「クッキーを使用しない」を選択し直すと、名前欄などの情報がクリアされてしまう・・・。うーむ。これは一体どうしたものか。まだまだ改善が必要なようだ。
なお、プレビュー用に使えるタグは、ヘルプ・マニュアルの「テンプレート・タグ」→「コメントのプレビュー」に列挙してある。



コメントスパム対策その2

どうも前述のスパム対策だけでは不十分らしいので、うちでもスパム対策プラグインであるMT-Blacklistを導入してみることにした。これはなかなか強力らしい。試しに、古いエントリにコメントしてみたら、ちゃんとブロックして「保留」扱いにしてくれた。

インストールにあたって参考にしたのは、Tak’s ウエブログの解説。今回ダウンロードしたのはv2.04bです。
ほぼ説明どおりにやって、うまくいった模様w。違った点は

  • 「LaunchBackgroundTasks 0 を 1 に書き換えておきます」とあるが、私のバージョン(MT 3.11)のcongifファイルにはそのような項目はなかったので、スルー。
  • mt-bl-load.cgiを実行すると、「db」へのpathがエラーになる。configファイル内のパスを、指示どおりに相対パスから絶対パスに書き換える。
  • 「MT-Blacklist Master Switch:をOn」とあるが、2.04bでは「Inactive/Active」を切り換えるようになっている。もちろん「Active」にする。

といったところでしょうか。
細かいカスタマイズができるようですが、説明が全部英語なので、まだよくわかりません(汗



コメントスパム対策

朝起きてブログを開いたら、なんと新規コメントが200件以上!スパムだ…orz
こんな寂れたところまでやっては来ないだろうとたかをくくってて、何のスパム対策もとってなかったので、慌てて防止策をほどこしました。

スパム防止には

  • 全角の「。」や「、」を一つも含まないコメントはスパムとみなす(スパムはほとんど欧文)
  • コメント関連のcgiプログラムの名称をリネームする
  • コメント投稿を認証制にする

など、いろいろあるんですが、今回参考にさせてもらったのは針中野ミュージックコメントスパムなんて大嫌い for MovableType 3.1

コメントフォームにダミーの変数を追加して、その変数と一緒にコメント用CGIを呼び出さないとコメントできない設定にする。

というものです。多くのスパムコメントが、コメントフォームから投稿されるのではなくてmt-comment.cgiを直接動かして機械的に投稿されていることから、正規のコメントフォームから投稿されていない場合はエラーが生じるよう、プログラムを書き換えてやるんですね。
具体的な方法は

  1. コメントフォーム用に、変数を埋め込んだ新たなモジュールを作成する
  2. コメントリスト・コメントプレビュー・コメントエラーの各テンプレートに、作成したモジュールを読み込ませる
  3. 個別アーカイブのテンプレートのコメント投稿部分に、変数を埋め込む
  4. mt-comment.cgiを一部書き換える

という手順になります。
手順がとても丁寧に紹介されているんで、順を追っていけばそんなに難しくなく導入できると思います。
これでうまく防御できるといいんだけどな。
あんまり手のこんだスパマーが現れないことを祈りまつ…



ブログのカスタマイズ

あちこちから小技を拾い集めてきて(小枝ではないよ。w)ブログをカスタマイズしています。
ブログの内容自体は全然ジウジツしないのだが、なぜかカスタマイズだけには熱心な私。そんな自分が好きだ。大好きだV(^^)V

で、これまで使わせていただいたTipsを、念のためまとめておきます。
もうちょっとしたら3.121にバージョンアップしてみようと思うので、覚え書きに。
画像にテキスト回り込み?ごみのやま
MT4i/MovableType用 携帯電話向け変換プログラム?Talk to onself 2
moblog?dh’s memoranda
長くなったページを分割表示(MTPaginateプラグイン)?ぐーたら on MT
特定のカテゴリを表示させないプラグイン?ARTIFACT ―人工事実―
日本語対応トリミングフィルタ?人生迷い箸
月別アーカイブをプルダウンメニューに変更?Nakamura’s weblog
MT でサブカテゴリ以下も全て表示させるには??亜細亜ノ蛾 – Weblog



テスト


携帯から投稿テスト


« 前のページ次のページ »

  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報