2006年9月2日土曜日

コメントスパム対策

コメントスパムがやたらにくる。いちいち消していたのではたまらないので、対策をすることにした。

なごすいさんのブログのエントリを参考にPloneCaptchaを導入する。

以下、導入方法のメモ。

1. http://captchas.net/ へアクセスして、アカウントを作る。しばらくするとメールで、user nameとsecret keyが送られてくる。

2. PloneCaptchaをhttp://plone.org/products/plonecaptcha/からダウンロードし、解凍してできたファイルをディレクトリごとzopeインスタンスのProductsディレクトリに移動する。

3. zopeインスタンス/Products/PloneCaptcha/config.pyのなかの

CAPTCHA_USER = 'demo'
CAPTCHA_PASS = 'secret'

 の部分のdemoとsecretを先ほどメールで送られてきたuser nameとsecret keyに置き換える。

4. zopeをリスタートし、Ploneの「サイト設定」→「プロダクツを追加・削除」でPloneCaptchaをインストールする。

5. Ploneの「サイト設定」→「Zope管理インターフェース」でZMIに入り、portal_skins/COREBlog2/cbcomment_formを表示して「Customize」ボタンを押す。

 cbcomment_formが編集できるようになるので、

          <div class="field"
                tal:define="error errors/captcha| nothing;"
                tal:attributes="class python:test(error, 'field error', 'field')">

                <label i18n:translate="label_captcha_help">Verification Code</label>
                <div class="formHelp" i18n:translate="help_plone_captcha">
                    This helps us prevent automated spamming.
                </div>

                <div tal:content="error">Validation error output</div>
                <div metal:use-macro="here/captcha/macros/edit" />
            </div>

 をremember_cookieの定義の前に挿入する。

6. 次にZMIからportal_skins/COREBlog2/cbentry_viewを表示し、Validationタブをクリックする。ここで、Add a New Form / Script Validator Overrideを下記のように設定して「Add」ボタンを押し、Validatorを追加する。

Context type: Any
Button : 空白のまま
Validators : validate_captcha

7. 上記と同様に、portal_skins/COREBlog2/cbcomment_previewにもValidatorを追加する。


以上で、コメント欄に文字を含む画像が表示され、コメントの認証が行えるようになる。

画像を見て文字を入力するというのは視覚障害者を排除することになるので、できればやりたくなかったのだが、コメントスパムの多さに辟易して導入することにした。

敗北だな。;-(



0 件のコメント:

コメントを投稿