2apes.com
apeboard 本の検索 2apesについて お問い合わせ

2006年に入ってから、apeboard+ に対する SPAM 書き込みが増えています。 何人かの方からご連絡いただき、状況の確認と対応を行いました。

いくつかの SPAM 書き込みのケースを確認し、一般的な SPAM 対策が可能な apeboard+ をリリースすることになりました。 SPAM 対策版の apeboard+ のリリースに大変時間がかかってしまい、申し訳ございませんが、現在も SPAM 書き込みに お困りの方は、このページをお読みの上、対策していただければと思います。

以下、apeboard+ の SPAM 対策に関して、ご説明します。

まず、apeboard+ Version 2.0 をダウンロードしてください。 「apeboard+ ダウンロード」からご自分の環境にあった apeboard+ をダウンロードしてください。 「apeboard+ をすでにご利用の方」以下にあるバージョンアップ版のダウンロードで十分です。

apeboard+ のマニュアル」をご確認の上、apeboard_plus.cgi の設定を変更してください。 変更する際は、必ず、テキストエディタで apeboard_plus.cgi を開いてください。Word 等のワープロソフトで開いた場合、apeboard+ が 正常に動作しなくなってしまいます。 変更する箇所は、以下の赤字の部分です。

#!/usr/local/bin/perl

# =========================================================================
#
#                  /////apeboard+ Ver.2.0 (EUC-JP)/////
#
#                      Copyright (C) 2001,by 2apes.com
#                           All rights reserved
#                          http://www.2apes.com
# =========================================================================

# 必要なファイルのパス指定 ------------------------------------------------


require './jcode.pl';
require './boardini.cgi';
require './skinini.cgi';

# 設定終了 ----------------------------------------------------------------

# -------------------------------------------------------------------------
# 基本処理
# -------------------------------------------------------------------------

# フォームデータの処理 ------------------------------------------

if ($ENV{'REQUEST_METHOD'} eq "POST") {
        read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
        $query= $ENV{'QUERY_STRING'};
}
        

設定変更を行った apeboard_plus.cgi をご自分のサーバへアップロードしてください。 念のために、古い apeboard_plus.cgi をコピーするなどの方法でバックアップされることをお勧めいたします。 FTP の設定で、アスキーモードでアップロードするようにしてください。バイナリーモードでアップロードした場合、 apeboard+ が正常に動作しなくなってしまいます。 アップロードした apeboard_plus.cgi のパーミッションが 755 など ISP で指定されているものになっているか確認してください。

この段階では、まだ、SPAM 対策されているわけではありませんが、apeboard_plus.cgi を入れ替えましたので、 正常に動作するか確認してください。 ご自分の apeboard+ にアクセスして、掲示板が正常に表示されるか、書き込みが正常に行われるかを確認してください。

SPAM 対策をするには、boardini.cgi に設定を追加します。 設定できる項目は、
  • $deny_not_post
  • $limit_url
  • $deny_no_japanese
  • $ng_word
  • $ng_subject
  • $deny_email
  • $deny_time
になります。
以下、それぞれの項目について、説明いたします。

$deny_not_post
$deny_not_post を設定すると、GET での掲示板の書き込みができなくなります。

今まで、apeboard+ では、例えば、
http://掲示板を設置しているサーバ/apeboard_plus.cgi?command=write&subject=test&message=hogehoge
というようなリンクが張られていた場合、このリンクをクリックしただけで書き込みが行われてしまう状態でした。 $deny_not_post を設定すれば、このようなリンクをクリックしただけでは書き込みできなくなります。

$deny_not_post を設定する前に、必ず、ご自分の apeskin.html, res_file.html を確認して、以下のように、 FORM タグの METHOD 属性が POST (大文字小文字どちらでも構いません)になっていることを確認してください。


        <form method="post" action="apeboard_plus.cgi">
        

もし、POST ではなく、GET となっている場合は、まず、$deny_not_post を設定せずに、apeskin.html の GET を POST に変更し、 その状態で正常に書き込みができるか確認してください。正常に書き込めるのであれば、$deny_not_post を設定してください。

$deny_not_post の設定は、boardini.cgi に


        $deny_not_post = '1';
        

と追加するだけです。

$deny_not_post は、すべての apeboard+ で設定されることを推奨します。

$limit_url
$limit_url は本文に書ける URL の数を制限します。

今までご連絡いただいて、こちらで確認した SPAM は URL を羅列するものが多かったため、この対応はある程度効果的だと 思われます。

$limit_url の設定は、boardini.cgi に


        $limit_url = '3';
        

と追加します。上記の設定で、本文に URL を3つまで許容する設定になります。 URL が4つ書かれるとエラーになります。 apeskin.html に「本文に URL は3つまで記入できます」などの注意書きを入れれば、SPAMMER ではない訪問者にも注意を与えることが できるかと思います。

$limit_url は、URL を羅列する SPAM が多い apeboard+ で設定されることを推奨します。

$deny_no_japanese
$deny_no_japanese は本文に日本語がなかった場合、掲示板の書き込みができなくなります。

今までご連絡いただいて、こちらで確認した SPAM は海外からの書き込みと思われる英語の SPAM が多かったため、 この対応が取れるのであれば、非常に効果的だと思われます。 もし、海外からの正規の書き込みがない場合は、この設定を行ってください。

$deny_no_japanese の設定は、boardini.cgi に


        $deny_no_japanese = '1';
        

と追加します。

$deny_no_japanese は、正規書き込みで英語の書き込みがない apeboard+ で設定されることを推奨します。

$ng_word
$ng_word は本文に設定した単語が入っていた場合、掲示板の書き込みができなくなります。

$ng_word の設定は、boardini.cgi に


        $ng_word = 'v\w\wgr,url=,出会い系';
        

と追加します。 NG ワードが複数ある場合は、「,(カンマ)」で区切ってください。 NG ワードは正規表現を指定することも可能です。上記の例では、「url=」「出会い系」という単語が入った書き込みと 「v」 から始まり何らかの文字が2つ続いた後に 「gr」が出現する単語が入った書き込みを SPAM として扱い、 書き込みができないように設定しています。 通常、「viagra」だけではなく、「vi@gra」や「v1agra」などといった単語を SPAMMER が好むため、 英単語は特に正規表現で指定した方が効果的だと思います。

$ng_word は、日本語の SPAM が多い apeboard+、 もしくは $deny_no_japanese が設定できない apeboard+ で設定されることを推奨します。

$ng_subject
$ng_subject は件名に設定した単語が入っていた場合、掲示板の書き込みができなくなります。

$ng_subject の設定は、boardini.cgi に


        $ng_subject = 'v\w\wgr,url=,出会い系';
        

と追加します。 $ng_word と同様な設定になります。

$ng_subject は、日本語の SPAM が多い apeboard+、 もしくは $deny_no_japanese が設定できない apeboard+ で設定されることを推奨します。

$deny_email
$deny_email はメールアドレスが入力されていた場合、掲示板の書き込みができなくなります。

ツールを使った SPAM の多くは、メールアドレスも律儀に書き込んできます。 したがって、正規の書き込みではメールアドレスを書かないように注意喚起しつつ、メールアドレスの 入力がされている書き込みを SPAM として扱い、掲示板の書き込みをできなくするのも効果的だと思います。

$deny_email の設定は、boardini.cgi に


        $deny_email = '1';
        

と追加します。

$deny_email は、$deny_no_japanese が設定できない apeboard+ で設定されることを推奨します。

$deny_time
$deny_time は掲示板を表示してから、実際に書き込むまでの時間を測定し、書き込み時間が早すぎれば、 掲示板の書き込みができなくなります。

ツールを使った SPAM の多くは、掲示板訪問して、10 秒以内などで書き込みを行っています。 通常、人間が掲示板を訪問し、内容を書き込むまでには少なくとも10 秒以上はかかるはずなので、 10 秒以内の書き込みを SPAM とみなしてブロックするのはある程度効果があると思われます。

$deny_time の設定は、boardini.cgi に


        $deny_time = '10';
        

と追加します。上記設定により、掲示板訪問から 10 秒以上経過した書き込みだけが書き込み可能になります。

$deny_time は、すべての apeboard+ で設定されることを推奨します。

$deny_host, $deniedhost
$deniedhost は掲示板書き込みをさせないホスト名を指定します。

$deniedhost の設定は、boardini.cgi の


        $deny_host = '1';
        $deniedhost = 'nttpc.ne.jp,.tw';
        

を変更します。以前からこの設定が boardini.cgi に入っていますので、その部分を変更してください。 複数指定したい場合は、「,(カンマ)」で区切ってください。 上記の例では、nttpc.ne.jp か .tw が入っているホストからは書き込みができなくなります。 入っているというのは、hoge.n-yokohama.nttpc.ne.jp, foo.n-tokyo.nttpc.ne.jp などが対象になります。 また、xxx.yyy.tw だけではなく、xxx.tw.yyy も対象になりますので、設定には注意が必要です。

$deny_IP, $deniedip
$deniedip は掲示板書き込みをさせない IP アドレスを指定します。

$deniedip の設定は、boardini.cgi の


        $deny_IP = '1';
        $deniedip = '111.222.333.,12.';
        

を変更します。以前からこの設定が boardini.cgi に入っていますので、その部分を変更してください。 複数指定したい場合は、「,(カンマ)」で区切ってください。 上記の例では、111.222.333. か 12. から始まる IP アドレスからは書き込みができなくなります。 以前の apeboard+ では、deniedhost と同様で、例えば、 12. がどこかに入っている IP アドレスからの書き込みができなくなっていましたが、 Version 2.0 から 12. から始まる IP アドレスだけから書き込みができなくなるように変更していますので、ご注意ください。


設定変更を行った boardini.cgi をご自分のサーバへアップロードしてください。 念のために、古い boardini.cgi をコピーするなどの方法でバックアップされることをお勧めいたします。 FTP の設定で、アスキーモードでアップロードするようにしてください。バイナリーモードでアップロードした場合、 apeboard+ が正常に動作しなくなってしまいます。 アップロードした boardini.cgi のパーミッションが 644 などになっているか確認してください。 boardini.cgi は 755 である必要はありません。

SPAM 対策されたapeboard_plus.cgi が正常に動作するか確認してください。 ご自分の apeboard+ にアクセスして、掲示板が正常に表示されるか、書き込みが正常に行われるかを確認してください。

COPYRIGHT 1999-2006 2apes.com ALL RIGHTS RESERVED.