August 08, 2004
コメント投稿時に変更がある場合は、プレビューが必要です
コメントスパムで困っていたmdlm -bekkan-のnaoさんコメントでプレビューボタンのみ表示してhashを仕込むというコメントスパム対策を案内してみたところ、うまく導入できたようです。その後naoさんからGoing My Wayのエントリー本文で紹介されているコードだとエラーが出るようだとの指摘をもらい調べてみました。
このコメントスパムの対策を紹介しているMusings: Forcing Comment Previewsでのエントリーを再度読んでみるとRevised (8/1/2004)という事なのでComments.pmの部分のコードを改定したようです。内容のタグを読んでいくと、今まではコメント本文の内容に対してのみプレビュー時にhashを確認するという方法だったものを、コメントする人の、名前、メール、URL、本文すべてに対してプレビュー時にhashを確認するようになっています。入力可能なフォームすべてに対して確認しているのでより強力になっています。
なのでさっそく対応しました。Going My Wayで紹介したプレビューボタンのみ表示してhashを仕込むというコメントスパム対策のエントリー本文内のコードも直しておきました。
整理すると、
1.コメントの投稿時にはプレビューする事が必要です。
2.プレビューしたあとでもコメントの内容を変更した場合(名前、メール、URL、本文すべて)もう一度プレビューする必要があります。
実はこの方法はあまり取り入れている人は少ないかもしれませんが実はかなり効果があって、最初に設定以来1通もコメントスパムをもらっていません。
(6/17以来コメントスパムはありません)
この方法はプログラムなんかを使ったコメントスパムに対しては絶大な効果があります。
さらに手動でPageRank狙いのコメントスパムをしようとしてもコメント本文のURLをリダイレクトするコメントスパム対策をしてあるのでプレビューしてみてみれば意味がないのがわかるでしょう。
naoさんに指摘いただいたことでさらに、さらに強力に改良できました。ありがとうございます。
Posted by kengo at August 8, 2004 10:42 AM | TrackBack | BLOG | Blog Search | English | QR |
こんにちは。先日タバコのエントリにコメントさせていただいた Shin です。
いま、3.11-ja でこのコメントスパム対策を導入しようとしています。2.661 の際は別のを導入していたのですが、この対策が決定版のような気がするので、3.11へのアップグレードとともにこちらに変更しようと考えました。
ところが、下記のような警告が出てしまいます。
Undefined subroutine &MT::Template::Context::_hdlr_pass_tokens called at /MTpath/mt/lib/MT/Builder.pm line 139.
Use of uninitialized value in concatenation (.) or string at /MTpath/mt/lib/MT/App/Comments.pm line 249.
Use of uninitialized value in concatenation (.) or string at /MTpath/mt/lib/MT/App/Comments.pm line 249.
Use of uninitialized value in string ne at /MTpath/mt/lib/MT/App/Comments.pm line 259.
下3行はまさに書き換えたところなのですが、この対策は3.11には適用できないのでしょうか?あるいは単になんらかのミスを犯しているのでしょうか?
なにかお気づきの点があればご教示願います。

Twitter経由でコメントする
メールの場合はこちらまで
Google Talk からメッセージを送る



















