コメントスパム対策その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」にする。

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



No.94

今日、2005シーズンの背番号が発表になりました。
掲示板での予想通りでしたね♪
そして我がチームは、本日ブラジルキャンプに旅立ちました。
いってらっさい。



コメントスパム対策

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

スパム防止には

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

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

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

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

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

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



温泉?!

サポーター仲間11人(!)で、月岡温泉で新年会をしました。
新年会っても、「飲んで食べて風呂入って」の繰り返しwなわけですが、くつろいだですよ。
とくに良かったのが、露天風呂での浮き酒。冷や酒1合とおつまみのセットが、湯舟に浮かべるのにちょうどいい感じのお盆にのっていて、フロントに頼むとお風呂まで持ってきてくれます。ちゅきと差し向かいで飲みました。グー。

ただ、露天風呂が塩ビの波板で覆ってあるのは、かなり興ざめでござんした。
天が露わになってるから「露天」というのであって、あれでは単なる「屋外」風呂ですな。夜風に当たってのぼせを冷ましながらお酒を飲める、っていう利点はあったけど、チラチラ降る雪が湯舟に融けるのを眺めながら「雪見酒」っていうのを期待してた身としては、趣の無さにがつかり、というところ。
まあ、覆いがないと回りの建物から湯舟が丸見え、っていう状況なのはよく理解できますけど、もすこし工夫してほしいところです。
   それと、ちゅきさん。湯舟で津波を起こすのはやめてください(笑)
新年会の主な話題は、海本兄弟が同時にピッチに立ったときのコールをどうするか?ということでした(ウソ)。
やはり
「兄!兄!兄!●●● 兄!兄!兄!●●● 」
「弟!●●● 弟!●●●」
(●はタイコ)
になるんでしょうか?(ならねーよ)



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

  •  

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

  • あいさつ掲示板

  • メタ情報