トップ –> MovableType Tips –> Scodeでコメントスパム対策

MovableType Tips

Scodeでコメントスパム対策

Scode.gif  コメントを受け付けるようにするとコメントスパムが絶えない、TypeKeyでサインインした人のみコメントを受け付けるようにすると、スパムは減るが敷居が高くなってしまう・・・。
 そこでScodeプラグインを導入してコメントスパム対策をします。


1.プラグインのダウンロード
Movalog PluginsからScode1.0(2006年5月現在)をダウンロードしてきます。
サイト内の「plugin」からダウンロードします。

Installation
Installation is quite simple.
1. Download theplugin
2.Extract the distribution and preserve ・・・・・

2.プラグインのアップロード
ダウンロードしたプラグインを解凍後、「php」「plugins」のフォルダをmt.cgiのあるディレクトリにアップロードします。次に「plugins」→「SCode」→「mt-scode.cgi」のパーミッションを「755」または「700」(各サーバーの設定に合わせてください)にします。

3.SCodeの設定
MovableTypeの「システム・メニュー」→「プラグイン」で「SCode」の「設定を表示」をクリックすると下のような設定画面になります。

Scode2.gif
Temp Directory・・・セキュリティコードの保存先
デフォルトでは、.tmp/となっていますが、エラーが出る場合があります。そのときは、フルパスで入力してください。tmpフォルダがない場合は作成してください。
例) /home/sites/lolipop.jp/users/lolipop.jp-dp*****/web/tmp/
Length・・・セキュリティーコードの桁数(デフォルト6)
Max Temp Files・・・セキュリティーコードのパターンの数(デフォルト50)
Action・・・セキュリティコード認証エラーアクション
「Reject Comment」にチェックします

次にセキュリティーコードを設置したいブログの設定画面から「設定」→「プラグイン」で「SCode」の「設定を表示」をクリックし、「Enable:・・・」の欄にチェックを入れ「変更保存」。

Scode3.gif

4.セキュリティーコードの設置

個別エントリーアーカイブのテンプレートの編集
「テンプレート」→「アーカイブ」→「個別エントリーアーカイブ」のテンプレートに下記を追加します。

<p><label for="scode">セキュリティコード:</label><br />
<input type="hidden" id="code" name="code" value="<$MTSecurityCode$>" />
<img class="scode" src="<$MTCGIPath$><$MTSecurityImage$>?code=<$MTSecurityCode$>">
<input id="scode" tabindex="3" type="text" id="scode" name="scode" /></p>

コメント部分は通常用とTypeKey用の2ヶ所あります、用途に合わせ追加してください。
セキュリティーコードの位置を変更しない場合は「class="scode"」「id="scode"」は削除してください。
tabindex」は、タブ移動の順序になります。追加する場所に合わせ数値を変更してください。(使用しない場合は、削除してください)

テンプレートモジュールの作成
コメントプレビュー・保留・エラーのテンプレートにもセキュリティーコードを設置するための準備をします。
「テンプレート」→「モジュール」で「モジュールを新規作成」をクリック。
「テンプレート名」・・・・CommentFields for SCode (個々に名前をつけてください)
「モジュールの内容」に個別エントリーアーカイブのテンプレートの<MTEntryIfCommentsOpen> ~ </MTEntryIfCommentsOpen>の間をコピーし貼り付け、最後にjavascriptを追加し「保存」します。

<MTEntryIfCommentsOpen>
・・・・・・・・・・・ 中 略 ・・・・・・・・・・・・・・
<script type="text/javascript" language="javascript">
<!--
if (document.comments_form.email != undefined)
    document.comments_form.email.value = getCookie("mtcmtmail");
if (document.comments_form.author != undefined)
    document.comments_form.author.value = getCookie("mtcmtauth");
if (document.comments_form.url != undefined)
    document.comments_form.url.value = getCookie("mtcmthome");
if (getCookie("mtcmtauth") || getCookie("mtcmthome")) {
    document.comments_form.bakecookie[0].checked = true;
} else {
    document.comments_form.bakecookie[1].checked = true;
}
if (document.comments_form.author)
    document.comments_form.author.value =
        '<$MTCommentPreviewAuthor encode_js="1"$>';
if (document.comments_form.email)
    document.comments_form.email.value =
        '<$MTCommentPreviewEmail encode_js="1"$>';
if (document.comments_form.url)
    document.comments_form.url.value =
        '<$MTCommentPreviewURL encode_js="1"$>';
if (document.comments_form.text)
    document.comments_form.text.value =
        '<$MTCommentPreviewBody convert_breaks="0" encode_js="1"$>';
//-->
</script>
</MTEntryIfCommentsOpen>

コメントプレビュー・保留・エラーのテンプレートの編集
コメント・プレビュー・保留・エラーのテンプレートの<MTCommentFields preview="1" static="1">の部分を<MTInclude module="CommentFields for SCode">に差し替えます。
「CommentFields for SCode」は、先程モジュールでつけた名前が入ります。

<MTIfCommentsAllowed>
<MTInclude module="CommentFields for SCode">
</MTIfCommentsAllowed>

セキュリティーコードの位置とサイズ
a. スタイルシートでセキュリティーコードの位置を整えます。
「テンプレート」→「インデックス」→「スタイルシート」に下記を追加します。

.scode {
    vertical-align: top;
    }

#scode {
    margin: 0px 0px 0px 5px;
    }

b. セキュリティーコードのサイズを変更
「plugins」→「SCode」→「lib」→「SCode.pm」の34行目から57行目を下記のように編集します。

my $im = new GD::Image($im_length,2518);
   
# define the color we going to use
my $c_background = $im->colorAllocate(224,224,224);
my $c_border = $im->colorAllocate(0,0,0);
my $c_line = $im->colorAllocate(192,192,192);
my $c_code = $im->colorAllocate(128,128,128);
   
# Fill in the background
$im->fill(50,50,$c_background);
   
# Draw the borders lines
for (my $i=0;$i<$im_length;$i+=5) {
$im->line($i,0,$i,2417,$c_line);
}
   
for (my $i=0;$i<25;$i+=5) {
$im->line(0,$i,$im_length-1,$i,$c_line);
}
   
$im->rectangle(0,0,$im_length-1,2417,$c_border);
   
# Write the code
$im->string(gdGiantFont,8,51,$scode,$c_code);

編集後、上書き保存して上書きアップロードしてください。以上で終了です。

※セキュリティーコードを導入したので、コメントプレビュー・保留・エラーのメッセージを変更したほうが良いかと思います。

参照先:
小粋空間さん「SCode プラグインでコメントスパムを制限する(その1:基本設定)
hiroto sakai's blogさん「MT 3.2 で Scode プラグイン


トラックバック

【ブログタイトル】 MovableType備忘録
【記事タイトル】 コメント・スパム対策にセキュリティコード設置
【記事概要】 以前、コメント・スパム対策として、TypeKeyを使ったコメント・スパム対策を紹介しました。 さらにコメント・スパムに対する強化として、セキュリティコード... [ 詳しくはこちら ]

【ブログタイトル】 /PEN/
【記事タイトル】 コメントスパム
【記事概要】 何やらどしどし頂くようになってしまったので…どうしたものかと思い、プラグインを導... [ 詳しくはこちら ]

【ブログタイトル】 Mizky・Blog
【記事タイトル】 やっとできたTT
【記事概要】 コメントスパム対策のため、セキュリティコードを導入しました。 コメントしてくださる方は、お手数ですがセキュリティコードの入力をお願いします<(_ _)> ... [ 詳しくはこちら ]

【ブログタイトル】 ハコラボ
【記事タイトル】 セキュリティーコードを設置
【記事概要】 セキュリティーコードを設置する [ 詳しくはこちら ]

ご意見・ご感想 (8)

mana:

こんにちは。はじめまして。
SCode早速導入させて頂きました。とても参考になりました。またよろしくお願い致します。

Mizkyさん、コメントありがとうございます。
返答遅れ申し訳ありませんでした。
今後ともヨロシクお願いします^^

はじめましてmagnetさん。
プラグイン導入、参考にさせて頂きました。

ありがとうございました^^

こんにちは^^ bizbellさん。
エラーメッセージが表示されない件について、取り急ぎコメントしますね。
わたしも設置したときではないのですが、同じ現象がコメントの送信と確認ボタンを画像に変更したときにおこりました。通常のボタンに変更すると問題なく動作しましたよ。試してみてください^^

度々すいません。bzbell です。
重複トラバしてしまいました(汗ごめんなさい。

1つ確認したいことがあります。
コメント投稿時に未記入のまま投稿すると、当然エラーメッセージが表示されるはずですが、わたしのブログでは表示されなくなってしまったんです。
何事も無かったような振る舞いをするんです。
かといって、投稿はされてなくて正しく弾いてくれてるみたいなんです。

magnetさんのところでは、この現象出ますか?

おはよございます^^
GWボケで寝れなくなってしまいました^^;

この記事もっと早く出して欲しかったです…なんてね(汗

実はmagnetさんのセキュリティコードを見て、小粋空間さんのとこで記事にしてたのを思い出して(ずっと忘れてました)、最近わたしも設置したんですよ。

magnetさんはすんなり設置できたようですね。
わたしは…Temp Directory のところでつまづきました。

では、では…トラバさせていただきました♪

こんにちは^^ mituruさん
コメントありがとうございます。
いろいろ情報交換していきましょう^^
こちらこそヨロシクお願いします。

始めまして管理人さん
プラグインを導入するにあたって参考に、させて頂きました。

ありがとうございました
これからも宜しくお願いします。

ご意見・ご感想を投稿

・ 商品に対するお問い合わせも受け付けております。
・ ご意見・ご感想の内容は確認後表示されます。しばらくお待ちください。
・ 本サイトと無関係の内容は、削除いたします。ご了承ください。

January 3, 2007

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Recent Comments

Index