Movable Type 備忘録

 

 コメント・スパム対策にセキュリティコード設置

以前、コメント・スパム対策として、TypeKeyを使ったコメント・スパム対策を紹介しました。 さらにコメント・スパムに対する強化として、セキュリティコードを設置してみたので紹介します。

セキュリティコードは、リードメールではおなじみquetionですよね。 セキュリティコードを入力しないとポイントがもらえないってやつです。 また、ASP(アフィリエイト・サービス・プロバイダ)でいったら、リンクシェアではログイン時にセキュリティコードを要求されます。

そんなセキュリティコードMovableType(ムーバブルタイプ)のコメント投稿時にも設置してみようexclamというのが今回のカスタマイズです。 また、TypeKeyでサインインした人には、既に認証済なのでセキュリティコードの入力を省くようにします。
今回参考にしたサイトは、Movalog Plugins 様と 小粋空間 様です。

セキュリティコードを設置するには、SCodeプラグインを使用します。

SCodeプラグインの入手はこちらから▼
http://movalog.com/plugins/wiki/SCode

セキュリティコード設置条件

SCodeプラグインによるセキュリティコード設置には以下のような条件があります。
  1. Movable Type 3.2 or higher.
    MovableTypeのバージョンが 3.2 以上であること。
  2. You must have the GD library installed.
    サーバーに GD library がインストールされていること。
  3. You must have the GD Perl Module installed.
    サーバーに GD Perl Module がインストールされていること。
だそうです。
当サイトで使用しいるロリポップと、別サイトで使用しているさくらインターネットでは確認できました。 それ以外のサーバーについては、サーバー・サポートに問い合わせてみてください。

たぶん、チカッパ!ヘムテルでも使用できるのではないでしょうか。

カスタマイズ方法

  • SCodeプラグインをインストールします。
    上記URLから SCode_1.0.zip という圧縮ファイルをダウンロードします。 そして、適当なディレクトリに展開して、以下のようにサーバーにアップロードしてください。
    php ディレクトリの中すべて:
    mt/php/ の中にアップロードする。
    plugins ディレクトリの中すべて:
    mt/plugins/ の中にアップロードする。
    
  • SCodeプラグインの初期設定を行います。
    MovableType(ムーバブルタイプ)の管理画面から、メイン・メニュー > システム・メニュー > プラグインと辿って、「登録済みプラグイン」画面を表示してください。 そして、SCodeと表示された右端に「設定を表示」というリンクをクリックします。 設定内容は以下の通り。
    Temp Directory:
    ここには、セキュリティコードを保存するためのディレクトリ・パスを指定します。
    
    わたしの場合、相対パスだとうまくいかなかったので絶対パスで指定しました。
      特に相対パスだとダメという明記はありませんが、絶対パスを指定しておけば間違いないと思います。
      また、パスの最後には「/」をつけ忘れないでくださいね。
    
    ロリポップの場合
    /home/sites/lolipop.jp/users/●●●/web/mt/tmp/
    
    mt.cgi があるディレクトリの中に tmp ディレクトリを作って対応しました。
      青い字の部分は各自の環境に合わせてMovableTypeのインストールディレクトリ名を指定します。
    さくらインターネットの場合
    /home/●●●/tmp/
    
    www ディレクトリ( /home/●●●/www/ )と同じ階層に、tmp ディレクトリを作って対応しました。Length:
    セキュリティコードの文字数を設定します。デフォルトは6桁となっています。
      ここはデフォルトのまま使用しました。
    
    ●Max Temp Files:
    先ほど指定した tmp ディレクトリに保存される、最大ファイル数を指定します。
      デフォルトは50ファイルまで保存されます。
      tmp ディレクトリに作成されたファイルの中味を見ると、コードが入っていました。
      どうやら、50と指定すると50通りのコードを作成するようです。
    
      ここでもデフォルトのまま使用しています。
    
    ●Action:
    認証エラー時の動作を選択します。デフォルトは、Junk Commentとなっています。
    Reject Comment:
    コメント拒否する。
    Junk Comment:
    迷惑コメントとして受け付ける。
    
      ここは
    Reject Comment
    を選択しました。
    
    設定したら、「変更を保存」ボタンをクリックして保存します。
  • 次にブログ別の初期設定を行います。
    MovableType(ムーバブルタイプ)の管理画面から、各ブログの「設定」をクリックしてください。 そして画面上部にある「プラグイン」をクリックすると、ブログ別の「プラグイン設定」画面が表示されます。 その中からSCodeを探して、右端にある「設定を表示」リンクをクリックします。
    「Enable Security Code (CAPTCHA) checking on this blog.」とありますので、チェックボックスをオンにして保存してください。 複数のブログを管理している場合には、個別にこの設定をする必要があります。
  • テンプレートを修正します。
    個別エントリ・アーカイブとコメント・プレビュー、コメント・エラー・アーカイブに以下のコードを追加します。 comments-open-text を検索して、その上に追加してください。 他の場所だと思ったとおりに動作しませんでした。
    <div id="securitycode">
    <label for="scode">Security Code:</label>
    <input type="hidden" id="code" name="code" value="<$MTSecurityCode$>" />
    <img class="scode" src="<$MTCGIPath$><$MTSecurityImage$>?code=<$MTSecurityCode$>" /><input id="scode" tabindex="6" name="scode" />
    </div>
    <!-- ▼TypeKeyと併用する場合には、以下のコードも追加する▼ -->
    <MTIfNonEmpty tag="MTTypeKeyToken">
    <script type="text/javascript">
    <!--
    if (commenter_name) {
    document.getElementById('securitycode').style.display = 'none';
    }
    // -->
    </script>
    </MTIfNonEmpty>
    <!-- ▲TypeKeyと併用する場合には、以下のコードも追加する▲ -->
    <p id="comments-open-text">
        <label for="comment-text">コメント:  <MTIfAllowCommentHTML>(スタイル用のHTMLタグが使えます)</MTIfAllowCommentHTML></label>
        <textarea id="comment-text" name="text" rows="10" cols="30"></textarea>
    </p>
    
    青い字と赤い字の部分が追加するコードになります。
    TypeKeyを使用していない人は赤い字の部分は含めないで、青い字の部分のみ追加してください。
    追加したら、いつものように保存して再構築します。 わたしの場合、再構築時に以下のようなエラーが出ました。
    ~/tmp/ at /home/●●●/www/mt/plugins/SCode/lib/SCode.pm line 100.
    
    SCodeプラグインの初期設定で設定した Temp Directory の相対パス( ~/tmp/ )が悪いのかと思い、試しに ../../tmp/ もやってみましたが同じ結果でした。 時間もないし、ワケわかんないので、絶対パスにしたら1発OKでしたよ。
  • セキュリティコードの動作確認します。
    • ブラウザからエントリ・ページを表示して、セキュリティコードのイメージが表示されることを確認します。
      再構築できたけど、セキュリティコードのイメージが表示されませんでした。 原因はよく分かりませんが、SCodeTemp Directory に絶対パスで指定したら回避できました。
    • 間違ったセキュリティコードを入力(または、未入力)すると投稿されないことを確認します。
      投稿されてしまった場合、ブログ別のSCodeの設定がされてないからだと思いますので確認してください。
    • 正しいセキュリティコードを入力して投稿すると、正しく投稿されることを確認します。
    • 作成した tmp ディレクトリの中にファイルが作られることを確認します。
      正常に動作していれば、数字のファイルが作成されます。
    • TypeKeyでサインすると、セキュリティコードの表示がなくなることを確認します。
      TypeKeyを設置している人のみです。
    • セキュリティコードの設置は、個別エントリ、コメント・プレビュー、コメント・エラーの各アーカイブで設置したことを確認します。- 2006.05.11 追記 -
      SCodeプラグインを使う場合、上記3つのテンプレートに設置しないとエラーになるケースがあるようです。 詳しいことは分かりませんが、セキュリティコードを設置しなくてもSCodeプラグインが影響してるようで、各テンプレートにセキュリティコードの設置をしたらエラーしなくなりました。
      このエラー現象はMOVEMENTさんの報告により分かりました。ありがとうございます。

以上で、セキュリティコードの設置ができました。 SCodeプラグインの Temp Directory で相対パスを指定したらダメだったのが納得いきませんが、とりあえず、無事設置できたので良しとします♪ 相対パスでも動作している人がいるようなので、相対パスがダメということはなさそうです。

SEE YOUハート3

 Trackback Pings(1)

from 裏日記・・・気ままに更新・・・備忘録

Movable Type3.2-ja 覚え書き 備忘録? ◎S Code でコメントスパムを制限す...

 Comments(11)

#1: Posted by mituru [RES]

始めまして管理人さん
magnet様のサイトからおじゃましました。

自分も、同じプラグインを設置したのですが画像も表示されて
コメントも出来たので設置出来ていると思っていたら管理室の
ログを見てエラーになっていました。汗

此方の記事でパスの説明を読んで、もう一度最初からやり直しました
今度は、無事にフォルダーにファイルが入っていたので安心しました。

ありがとうございました
また、色々参考にさせて頂きます。

#2: Posted by bzbell [RES]

>>1 mituru さん

こんにちわ^^

わたしも今回うまくいったかな:question:と思いきや、セキュリティファイルが変なとこに作られてたり、散々でした。
お役に立ててよかったです。

#3: Posted by MOVEMENT [RES]

こんにちは、いつもお世話になっています。

またお力を貸していただきたいのです。

実は今回セキュリティコード設置にあたって最初は「小粋空間」サンのサイトを参考にさせていただいたのですが少し気になる点があって色々試行錯誤してみたのですがどうも上手くいかないのです。

それはTypeKeyを使ってサインインをしている時やサインインをしていなくても確認を押さずに投稿を押した場合はコメントが出来るのですがサインインをしていない状態で確認を押してから投稿ボタンを押した場合だけは何故かエラーになってしまいます。

で、「MovableType備忘録」サンの方法で再度、導入しなおしたのですが、同じ現象が現れてしまいます。

何か考えられる原因はあるでしょうか?
お忙しいところ申し訳ありませんがよろしくお願いします。

#4: Posted by bzbell Author Profile Page [RES]

>>3 MOVEMENT さん

こんにちわ^^

MOVEMENT さんの言われるように、わたしの方でもやってみましたが、こちらでは投稿されるようです。
今回のカスタマイズでJAVAスクリプトを使用していますが、試しにTypeKeyとの連動のためだけに組み込んだ、
JAVAスクリプトを外して確認してみてはどうでしょうか。

実はわたしも別な問題がでているんです。(今調査中:pp_08.gif:)
わたしの場合、何も入力しないで投稿すると、本来ならエラー表示されるはずですが、何事も無かったように振舞うんです:pp_02.gif:
これは、サインインしてようとしてまいと、同じ動きしてます。

また何か分かりましたら連絡しますね。

#5: Posted by bzbell [RES]

>>3 MOVEMENT さん

MOVEMENTさんのコメント・プレビューでは、セキュリティコードは表示されてないのですね。
何か関係あるかな:question.gif:と思って、わたしのブログでもコメント・プレビューではセキュリティコードを外してみたところ、エラーしました:exclam.gif:

SCodeプラグインが影響しているのでしょうか。とにかく、原因が分かったので、MOVEMENTさんの方でもセキュリティコード設置してみてください。

では…。

#6: Posted by MOVEMENT Author Profile Page [RES]

こんにちは! bzbellサンこんにちは!bzbellサン

コメントありがとうございます。

実はコメント・プレビューにセキュリティーコードを設定しても
だめだったので昨日は外したままにしていたんです。

それで色々調べてみたら私の使っているコメント・プレビュー
のテンプレートの内容とbzbellサンが使われているテンプレート
の内容が微妙に違っているようなんです。

それでテンプレートを少し変更したら何とか使えるようになりました。

でも、サインインした状態で確認ボタンを押して、確認画面になると
何故かセキュリティーコードが出現するんですけど....

本当にいつも丁重な対応、感謝です!

#7: Posted by bzbell [RES]

>>6 MOVEMENT さん

こんにちわ^^

> 実はコメント・プレビューにセキュリティーコードを設定してもだめだったので昨日は外したままにしていたんです。
えぇ~:exclam.gif:そうだったんですかぁ。わたしちょと確信してたのになぁ。
でも、解決できて何よりです。

> でも、サインインした状態で確認ボタンを押して、確認画面になると何故かセキュリティーコードが出現するんですけど....
そう言われてみれば、わたしのブログでも同じように表示されてしまいました:pp_08.gif:
調べてみますね。

#8: Posted by bzbell Author Profile Page [RES]

>>6 MOVEMENT さん

> でも、サインインした状態で確認ボタンを押して、確認画面になると何故かセキュリティーコードが出現するんですけど....

わたしのブログでは、上記について以下の mt-site.js を定義してあげたら表示されなくなりました。

<script type="text/javascript" src="mt-site.js" charset="<$MTPublishCharset$>"></script>

はっきりとしたことは言えないのですが、mt-site.js が妖しいような気がしてます。
クッキー関連、TypeKeyのスクリプトが入っているので、mt-site.js を定義してあげないとTypeKeyのサインイン情報などが取れなくなる:question.gif:のかなぁ…なんて思ってます。

MOVEMENTさんのところでも試しにやってみてください。

#9: Posted by MOVEMENT Author Profile Page [RES]

こんにちは、bzbellサン!

> わたしのブログでは、上記について以下の mt-site.js を定義してあげたら表示されなくなりました。

本当ですか?当方もこの方法で解決できたら最高なんですが。

でも恥を忍んで...
> mt-site.js を定義してあげたら表示されなくなりました。

これって具体的にどのように定義するんでしょう?
本当にど素人なんです、スイマセン...

またお時間のある時で結構です、よろしくお願いします。

#10: Posted by bzbell Author Profile Page [RES]

>>9 MOVEMENT さん

こんにちわ^^

> これって具体的にどのように定義するんでしょう?
えとですね、個別エントリアーカイブ中の <head>~</head> の中に以下のような記述ありませんか:question.gif:

<script type="text/javascript" src="mt-site.js" charset="<$MTPublishCharset$>"></script>

同じようにコメント・プレビュー、コメント・エラーのテンプレートの <head>~</head> に追加すればOKです。
mt-site.js はブログを新規作成したときにデフォルトで作られるファイル(MT3.2の場合)なので、意図的に削除しない限り、MOVEMENTさんのところにもあると思いますよ。
また、この記述を追加することで、TypeKeyでサインインすると、名前・メアドの表示も省略されるようになりました。

では、また何かありましたらご連絡ください:pp_05.gif:

#11: Posted by MOVEMENT Author Profile Page [RES]

オハヨ~ございます。

コメントありがとうございます。

> mt-site.js はブログを新規作成したときにデフォルトで
作られるファイル(MT3.2の場合)なので、意図的に削除
しない限り、MOVEMENTさんのところにもあると思いますよ。

実は削除した覚えはないのですがmt-site.jsというファイル
が無いのです(MT3.2です).. mt.jsというのはあるのですが...

ですのでご指摘の記述も個別エントリーアーカイブの中に見当
たりません。

どうも重症のようですね。これ以上はご迷惑をおかけできない
ので自己解決出来るよう自分で調べてみます。

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

 Post a Comment

コメント用フィード