プレビューボタンのみ表示してhashを仕込むというコメントスパム対策(改造版)

毎日投稿されるコメントスパムにいいかげんうんざりしましたので、対策をしました。

Going My Way: プレビューボタンのみ表示してhashを仕込むというコメントスパム対策


コメントスパムにはいろいろ対策をしていますが効果のありそうなものを見つけたのでちょっとMTを改造してみました。

これはMusings: Forcing Comment Previewsで紹介されていた方法で、コメントをいきなりPostすることを許可せずにプレヴューしないとPostできないようにするという方法です。そしてプレビュー画面にhashでランダムに表示させたキーをhidden属性に入れておくことでこれが入っていない場合投稿できなくすると言うものです。それでは改造方法。わりと簡単でした。



前々から、これいいじゃないかと思っていたので、早速私も導入してみました。
しかし、Digest::SHA1ライブラリがないというエラーが出てそのままの導入では無理でした。
そこで、Digest::SHA1を使用しないでDigest::MD5を使用するよう改造してみました。
導入手順
1.MTHashMD5.pl.txtをダウンロードして、MTHashMD5.plという名前でMTのpluginsディレクトリに入れてください。

2.(追記)salt.txtというファイルを作成し、内容はテキストで貴方の好きなキーワード(英数字)をいれてください。そのファイルをMTのpluginsディレクトリに入れてください。

3. Comment Preview Templateに下のタグを追加します。
<input type="hidden" name="validated" value="<MTMD5SaltHash><MTCommentPreviewBody convert_breaks='0'><$MTEntryID$><MTCommentPreviewIP></MTMD5SaltHash>" />


<input type="hidden" name="static" value="<$MTCommentPreviewIsStatic$>" />
の次行がいいと思います。

4.lib/MT/App/Comments.pmファイル(159行目あたり)を修正します。日本語のコードはMTの日本語パッチをあてた文字コードに統一してください。

 if (!$q->param('text')) {

  return $app->handle_error($app->translate("Comment text is required."));

 }

 # ここから

 use Digest::MD5 qw(md5_hex);

 my $content = "";

 $content .= $q->param('text');

 $content .= $q->param('entry_id');

 $content .= $user_ip;

 my $salt_file = MT::ConfigMgr->instance->PluginPath .'/salt.txt';

 open(FH, $salt_file) or die "cannot open file <$salt_file> ($!)";

 while (<FH>) {

  $content .= $_;

 }

 close FH;

 my $digest = md5_hex($content) . "=";

 

 if ($q->param('validated') ne $digest) {

 return $app->handle_error($app->translate(

  "Please preview your modified entry before posting it.(投稿する前に必ずプレビューをして内容を確認してください。)"));

 }

# ここまでを追加

 my $comment = MT::Comment->new;



5.あとは、プレビュー後に投稿してもらうように
・Individual Entry Archive
・Comment Listing Template

</form>の次に
※コメントスパム対策のため、プレビュー後、投稿願います


を追加するとよいでしょう。

6.(追記)テストコメントを作成し、プレビューせずに投稿をしたときに「投稿する前に必ずプレビューをして内容を確認してください。」とでることを確認の上、postボタンの表示をコメントにしましょう。
・Individual Entry Archive
・Comment Listing Template

<input type="submit" name="preview" value=" Preview " />
<!--
<input style="font-weight: bold;" type="submit" name="post" value=" Post " /><br /><br />
//-->

こんな感じでコメントにして隠すとよいでしょう。
Blog関係 > MT : comments (22) : trackbacks (13) ブックマークに追加する

Comments

 お仕事ご苦労様でした。<br />
早速プレビューしないでポストして見ます。(笑)<br />
警告文が出ましたよ。(汗)
by : USO-chili ... 2004/07/07 03:24 PM
テストありがとうございます。<br />
いきなりの投稿は警告がでますので、ボタンを隠すことにしました。
by : あんでるどん ... 2004/07/08 07:44 PM
はじめまして、アリスといいます。<br />
コメントスパムに困っておりまして、hashを仕込むというのを導入しましたが、エラーがでます。<br />
<br />
プリントアウトして、見ながらしたのですが、うまく導入できません。<br />
アドバイス、お願いできないでしょうか?<br />
メールもしたのですが、はじかれます。
by : アリス ... 2004/07/12 06:49 PM
>アリスさん<br />
エラーメッセージを拝見しました。<br />
>An error occurred: Can't locate Digest/MD5.pm in @INC <br />
というのは、@INC の設定のディレクトリにDigest/MD5.pmというライブラリファイルがないというエラーです。<br />
@INC の設定のディレクトリとは、次の<br />
>/usr/local/httpd/htdocs/www6/arisu/public_html/blog/extlib <br />
>/usr/local/httpd/htdocs/www6/arisu/public_html/blog/lib <br />
>/usr/local/lib/perl5 /usr/local/lib/perl5/site_perl <br />
>/usr/local/lib/perl5/site_perl<br />
>. (カレントディレクトリ)<br />
のどれにもないようなので、それらのパスにあうようにDigest/MD5.pmを自分で設置する必要があります。<br />
確実なのは私に聞くよりもAirnetさんのサポートを受けることでしょう。今回の改造のようなことができないプロバイダがあるかもしれませんので。
by : あんでるどん ... 2004/07/13 06:04 PM
すごく丁寧なお返事ありがとうございました。m(__)m。<br />
単純な記載ミス等によるエラーではなかったのですね。<br />
<br />
>パスにあうようにDigest/MD5.pmを自分で設置する必要があります。<br />
<br />
今のアリスのレベルでは、ちょっとむずかしいです。<br />
もっと勉強します。<br />
ありがとうございました。m(__)m
by : アリス ... 2004/07/13 07:45 PM
セッション使って管理してたりするとちょっと厳しいかも。
by : 酢鶏 ... 2004/07/16 09:33 PM
はじめまして。早速こちらを導入してみたのですが、<br />
最後のボタン設定がおかしいのか、プレビュー後に<br />
投稿してもエラーが出ます。<br />
4の「MTの日本語パッチをあてた文字コードに統一」が<br />
どこか書き換える場所があるのかどうか、わかりません。<br />
間違っているところがあれば、ご教授いただきたいのですが。。
by : はて ... 2004/07/29 10:58 AM
>はてさん<br />
はてさんのサイトはEUC-JPの日本語パッチをお使いのようですから、日本語をEUC-JPの文字コードで入力が可能なエディタを使って、EUC-JPで保存してください。(メモ帳ではだめです)<br />
もし、どうしてもわからないなら、日本語部分を削除すれば、いかがかと。(ただし利用者は英語メッセージでは理解不能になって、コメント書けないとクレームくるかもしれませんが)
by : あんでるどん ... 2004/07/29 11:43 AM
お返事ありがとうございます。速攻エディタを探してきました。<br />
保存時のコードの選択ができるようで、EUCにして保存。<br />
改行コードもLFにして保存FTPしましたが、やはり同じようにエラーが出ます。<br />
要領が悪くて、何度か上書きしたからでしょうか。。<br />
<br />
>(投稿する前に必ずプレビューをして内容を確認してください。)<br />
この日本語部を消しても見ましたが、やはりエラーで書き込めません。<br />
誠に申し訳ありませんが、何か策はありませんか?
by : はて ... 2004/07/29 02:09 PM
>はてさん<br />
エラーメッセージは何ですか?<br />
エラーメッセージから対処法はわかりませんか?
by : あんでるどん ... 2004/07/29 02:12 PM
あ。今見て頂いてるんですね、チャットみたいになってしまうこと申し訳ありません。<br />
<br />
エラー文はタイシタモノでないので、わかりかねています。<br />
今まで頂いたコメントの返事に入力していた名前・メアド・URLを入れたままなので、特にいじった形跡がないのです。<br />
<br />
>コメントの登録が失敗しました:<br />
>You are not allowed to post comments.<br />
>フォームへの入力エラーです。直してから「投稿」を押してください
by : はて ... 2004/07/29 02:17 PM
エラーメッセージの個所はここの内容と関係ありませんね。<br />
IPBANリストの処理でのエラーメッセージです。<br />
IPBANリストいじっていませんか?<br />
そのリストで全IPアドレスをはじくようなことしていませんか?<br />
>特にいじった形跡がないのです。<br />
とのことですが、あなたのサイトのエントリではココの内容を適応する前にIPリストを修正しているとエントリでかかれていますが。<br />
ここのエントリの対策を一旦もどしてみればわかると思いますよ。<br />
原因がどの修正によるものか。<br />
<br />
バックアップ取りましょうとは書いていませんが、よくわからないものに対して修正を加える場合は、バックアップとってから修正するのは基本ですので。(よくわかっているものでもバックアップは普通とりますけどね)
by : あんでるどん ... 2004/07/29 02:26 PM
他の対策もまとめてやってしまったから、とゆうことでしょうか。<br />
先に設定していた禁止IPを全部消してテストしてみたら、投稿できました・・・原因わからず(汗<br />
IPの禁止は、Web上にあったIPBanリストを参考にし、MT編集画面より禁止IPの入力の画面で操作しただけで、<br />
全IPを禁止するなどするはずもなく、何もしていません。わたしの現IPを登録するわけもないですし・・・。<br />
とりあえず投稿できるまま、IPの方を確認してみます。<br />
いろいろお騒がせしまして申し訳ありませんでした。感謝いたします。
by : はて ... 2004/07/29 02:56 PM
ちなみに私の場合も投稿できませんでした。<br />
つまりは全IPからの投稿ができなかったものと思われます。<br />
IPBANリストというのは、正規表現での登録が可能ですので、<br />
誤って全IPをはじく条件を登録してしまったのではないかと考えられます。<br />
(エラーメッセージの個所から、それ以外考えられません)<br />
<br />
いろいろな種類の対策をとるときは、ひとつづつ確認しましょうということです。一度にやってしまうと、詰まった時に何が原因なのかわからなくなってしまいますから。
by : あんでるどん ... 2004/07/29 03:27 PM
test
by : toshi ... 2004/08/15 12:46 PM
 あっ、すみません。このコメント削除してください。
 今朝15分間の間に65個ものカジノ誘導のスパムを受けてしまいました。
 ワンタイムパスワードっぽいものに挑戦しようかと調べていたら近い発想だなぁと思って投稿されてしまいました。すみません。
by : toshi ... 2004/08/15 12:56 PM
Digest::SHA1でだめだったので、こちらの方法を使わせていただきました。大助かりです。
過去のコメントで「はて」さんが首をひねっておられますが、これはコメントを連続して投稿したためにスパムとみなされ、禁止IPに加えられたのだと思います。解決済みのことかもしれませんが、参考までに。
by : suika-toh ... 2004/09/26 08:01 PM
ドメインを移転する前のやり取りなので、もう、はてさんはごらんになっていないのかもしれませんが、複数のスパムコメント防止措置の組み合わせによっては、はまって投稿できなくなる可能性があるということですね。
ご連絡ありがとうございます。
by : あんでるどん ... 2004/09/27 10:29 AM
test
by : test ... 2004/12/17 08:47 PM
 年末一晩で、200近くのコメントスパムにやられました。皆さん同様、はじめの数件を削除することの空しさを感じ、抜本対策を探して、こちらのサイトに。
 3つのブログサイトを運営しているので少し手間になりましたが、いたって簡単でした。何も問題なく対策できました。ありがとうございます。
by : Ofuchi ... 2005/01/01 03:33 PM
コメントスパム対策っていろいろあるけれども、
なかなか良い解決策ってないもんですね。
管理人様は、コメントスパム、解消されましたか?
by : Frat ... 2005/02/20 04:06 AM
MTを使用していたときは、この方法を使ってからMTの使用を止めるまでコメントスパム0でした。
ただ、人工無脳酢鶏からのコメントはありましたので、この方法も送信側が対策しようと思えばできるかと思います。
by : あんでるどん ... 2005/02/20 04:53 PM

Comment Form

  

Trackbacks

Trackback url :
コメントスパムへの対処法の一つに、プレビュー画面をかならず経由させるというものがあります。これはプレビュー時に MD5 または SHA-1 などのハッシュ値を hideen な値として埋め込み、この値が無い場合は破棄するかプレビュー画面へ飛ばすというものです。 コメントス...
by 津田ふみかの日記 ... 2004/07/07 07:01 PM
あとは手動SPAMというど根性な方がやってきてしまったときに対策するとすんべぇ。 ……
by 趣味の問題2 ... 2004/07/10 05:20 PM
 いままで、ベイジアンフィルタでcomments spams対策をしていたけれど、もっと積極的な対策を施しました。  この対策を有効にするために、サイト全体を再構築してください。 >Mint、Ryune、たいちょ〜...
by Lyliko@Live! ... 2004/07/18 10:05 AM
困った時はググるに限る。 あんでるどん氏のブログで対処方法らしきものを発見。 UnderDone(あんでるどん) | プレビューボタンのみ表示してhashを仕込むというコメントスパム対策(改造版) それは禁止IPを削除するというもの。 無論、今回は禁止IPのところはいじってないので無関係のはずなんだけど・・・ 試しに禁止IP...
by Grader Strikes 0083 ... 2004/08/20 12:34 AM
コメントスパム対策ですが、色々調べた結果、以下のサイトを参考に修正を加えました。 UnderDone(あんでるどん) | プレビューボタンのみ表示してhashを仕込むというコメントスパム対策(改造版) この修正によりコメントをいただく際には、必ず「確認」ボタンを押してもらって一度プレビュー表示をしてから投稿してもらう...
by masatsu file ... 2004/09/17 06:06 PM
今年になってから、コメントのspamが多くなりました。 コメントSPAMの対策が色々あるのは知っていたのですが、せっかくだから2.5→2.661にあげてからやろうと思って(本当は3にしたいけど、二つ以上のブログを運用するにはシェア登録が必要)、それまではとりあえず拒否リストにIP登録する方法でしのごうと思っていました...
by すっげ! ... 2004/10/05 05:30 PM
 meimei 日々つれづれ: hidden でコメントスパム対策ってエントリを書いたのが一週間前。順調にスパムコメントを弾いていたんですが、昨晩いきなり二十発ほど喰らいました。Σ(゚д゚lll) というわけで、別の方法をGoogle先生に教えてもらって、対策を講じてみました。もはや先生というより、ドラえもんに近い存在で...
by meimei 日々つれづれ ... 2004/10/09 03:26 AM
いちいちちまちまIP禁止にするのが面倒になってきたので、休みで時間もあったので対策をしてみた。 コメントもカジノ関連と○ンコ大きくしようとかそんなのばっかりなので飽きた(´_ゝ`) ググってよさそうな以下を実行した。 ・mt-comment.cgiをrenameし、mt.cfgにある「CommentScript」のところでrenameしたcgiを指定し...
by オレ様の日常(blog ver) ... 2004/11/23 04:03 PM
狙いのわからんコメントスパムがなんと今の時点で9270件(+o+)。えらいことになってる。しかも見えてるのだけでも削除してるんだけど、これがまたえらい時間のかかる作業ですげー無意味。 なので、この方を見習って、「プレビューしてからじゃないと投稿できないようにする」という方法をとってみることにした。このページ...
by shige+ki:blog ... 2004/12/09 02:50 PM
前回の対策 が効果がないことはわかっていました。 IPなんぞ、どれだけ禁止したって意味ないもんねぇ。 1日経過して、やっぱりコメントスパムが3通ほど追加されておりました。 つーわけで、次の対策です。 UnderDone(あんでるどん) - プレビューボタンのみ表示してhashを仕込むというコメントスパム対策(改造版) ここを...
by 感想文 ... 2004/12/20 01:11 PM
昨日、今日と、1日70通以上のコメントスパムがつくようになりました。 ここにそんなにオンラインポーカーの宣伝(?)コメントはっつけても無駄だと思うのですが。。 いちいち削除するのも面倒なので、 スパム対策をGoogle。 簡単そうな、 きままにポロポロで公開されているコメントスパム対策(その2)を導入してみるこ...
by F.E.E.L.:far east easy living ... 2004/12/29 10:49 PM
コメントスパム対策はこれまで2回やった。はじめhidden属性。その次は投稿時にチェックしてもらうやつ。結果はどちらも惨敗。む、むむ無念なり。 で、毎日まいにち投稿されるコメントスパムにかなりうんざりしてきたので、忙しい仕事の合間を縫ってネット上を探しに探し、とりあえず、考えうる最善の対策法との噂もちら...
by BAKKEN RECORD ... 2005/02/19 09:40 PM
 昨夜からのコメントスパム攻撃に対して、あんでるどんさんのところで見つけた対策を実施しました。 それはコメント投稿時には必ずプレビューを実施してからじゃないと投稿できないようにするというもの。 これからコメント投稿する際には、プレビューを経由してからというワンクッション入ります。 お手数をお掛けしま...
by 読書発電所 ... 2006/04/27 12:59 AM
なかのひと
SiteSearch Google
Google
Web
underdone.net
blog.underdone.net
Blog Pet
Amazon
Categories
Profile
Other
  • Blog Ranking
  • RSS feed meter for http://blog.underdone.net/