Movable Type 備忘録
TypeKeyを使ったコメント・スパム対策
- Next Page: カテゴリ内の最新エントリ一覧を表示する2
- Prev Page: アーカイブリストをプルダウンにしてみる
ネットサーフしていると、コメント・スパムに悩まされている人が多いですよね。
MovableType3.2になって、コメント・スパム、トラックバック・スパムの対策が強化されたと聞いています。
今回は、TypeKeyを使ったコメント・スパム対策について紹介したいと思います。
TypeKeyは、MovableType(ムーバブルタイプ)を入手する際に登録しましたね。
そのTypeKeyを入力して認証しないとコメントを投稿できないようにする…というのが、今回のコメント・スパム対策の方法です。
とはいっても、TypeKeyはすべての人が持っているものではありません。
当然、MovableType(ムーバブルタイプ)でブログ管理をしている人は持っていますけど。
ですので、コメントできる人が限られてしまうのが難点!? ですかね。
カスタマイズ方法
まず、TypeKeyトークンというコードを入手します。
管理画面から左サイドバーにある「設定」をクリックして、「コメント/トラックバック」タブをクリックしてください。
「認証サービスの設定」ボタンがありますので、そのボタンをクリックします。
ログイン名とパスワードは、TypeKeyを登録したときのものです。
ログインした画面下の方に、「TypeKeyトークン」とありますので、太字のコードをコピーします。
また、TypeKey認証させたいブログのURLも入力してください。
コピーしたTypeKeyトークンは、先ほどの「認証サービスの設定」の入力欄に貼り付けます。
次に、認証されたコメントしか受け付けないように設定します。
同じ画面内の各項目を以下のように設定します。
投稿を受け付ける条件:
「認証サービスで認証されたコメント投稿者のみ」を選択
メールアドレスの要求:
メールアドレスの入力を必須にしたい人はチェックします。
即時に公開するコメント:
「認証サービスで認証されたコメント投稿者のみ」を選択
以上で必要な環境は整いました。画面下の「変更を保存」ボタンをクリックして保存します。
次に、個別エントリー、コメント・プレビュー、コメント・エラーの各アーカイブで、以下のように差し替えます。
<MTIfRegistrationAllowed>
<script type="text/javascript">
writeTypeKeyGreeting(commenter_name, <$MTEntryID$>);
</script>
</MTIfRegistrationAllowed>
↓
<MTIfRegistrationAllowed>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write('サインインを確認しました。', commenter_name, 'さん。コメントお願いします。
(<a href="<$MTRemoteSignOutLink static="1" encode_html="1"$>">サインアウト</a>)');
} else {
document.write('TypeKey IDを使って<a href="<$MTRemoteSignInLink
static="1" encode_html="1"$>"> サインイン </a>してください。');
}
// -->
</MTIfRegistrationAllowed>
認証サービスを有効にすると、<MTIfRegistrationAllowed>~</MTIfRegistrationAllowed>の間が有効になります。
青い時の部分が元のJavaScriptです。
差し替えずに、このままでも TypeKey ID の入力を促すメッセージが表示されます。
差し替えたら、いつものように各アーカイブの再構築します。
動作確認します。
TypeKey 入力せずにコメント投稿してみてください。エラーになりますね。
では、今度は TypeKey を使ってログインして、同じようにコメントしてみてください。
正しくコメントが受け付けられたならOKです。
以上で、TypeKeyによるコメント・スパム対策は完了です。
Trackback Pings(0)
No trackbacks found.
Comments(2)
-
#2: Posted by
bzbell
[RES]
>>1 nishio さん
mt.js という JavaScript があります。
MT は MT3.35 のままでしょうか!? それとも MT4!?MT のインデックステンプレート内に mt.js のテンプレートがいますので、そちらを初期化して再構築してみてください。


<MTIfRegistrationAllowed>
<script type="text/javascript">
writeTypeKeyGreeting(commenter_name, <$MTEntryID$>);
</script>
</MTIfRegistrationAllowed>
↑がエントリアーカイブにないのです…。こーいうときはどうすればよいのやら。
コメント確認のところにはあるのになあ。なぜかしら。