掲示板のスパム対策

< 概要 >

CGIで稼働する自前の掲示板をスパムから守る方法を解説します。

< 解説 >

長年、自前掲示板へのスパム書き込みで頭を痛めていたのですが、ようやく完璧に防御することができました。効果があったのは掲示板サイトをアングラにすることでした。まずは徹底して見つからないようにする。そして見つかっても書き込ませないようにする。下記の方法を全部入れられればスパムともお別れです。

< スパム対策 >

掲示板のCGIが下図のようなフォルダ構成になっているとして話を進めます。

1) まずはじめに掲示板の.cgiファイルを掲示板を連想させない名前に変更する。特にbbs.cgiは狙われやすいので避ける。

2) すでにスパム書き込みがあるような場合には.cgiファイルを置いているディレクトリ(フォルダ)を変更する。

3) 普通、掲示板へのリンク(URL)を「<a href="bbs/bbs.cgi">掲示板</a>」のようにindex.htmlに記述していると思いますが、これだと掲示板のリンクを簡単に収集されてしまいますので、これをJavaScript化する。JavaScript化は掲示板改造支援サイトで簡単に行えます。

4) GoogleやYahoo!などの検索サイトに掲示板を登録させない。具体的には.cgiファイルの<head></head>間に「<meta name="ROBOTS" content="NOINDEX,NOFOLLOW">を入れる。

5) 百度などの中国系の検索サイトでは上記4)項の記述をしても登録するので、クローラのアクセスそのものを拒絶する。.cgiファイルを置いてある同じディレクトリに.htaccessファイルを置く。.htaccessファイルには下記のように記述する。ファイルの先頭に.(ピリオド)が付くと不可視ファイルになるので、htaccess.txtとかで保存して、サーバにアップした後でファイル名を.htaccessに変更する。

SetEnvIf User-Agent “^BaiduImagespider” ng_bot
SetEnvIf User-Agent “BaiduMobaider” ng_bot
SetEnvIf User-Agent “Yeti” ng_bot
SetEnvIf User-Agent “naver” ng_bot
SetEnvIf User-Agent “Twiceler” ng_bot
SetEnvIf User-Agent “Tagoo” ng_bot
SetEnvIf User-Agent “Sogou web spider” ng_bot
SetEnvIf User-Agent “ZanranCrawler” ng_bot
order allow,deny
allow from all
deny from env=ng_bot

6) 掲示板に直接アクセスさせない。これも.cgiファイルにJavaScriptを記述することで可能です。具体的には.cgiファイルの<head></head>間に下記を挟み込むことで、index.html以外からのアクセスを受け付けなくなる。直接.cgiファイルにアクセスしようとするとindex.htmlファイルに飛ばされるので、自動で書き込むプログラムとかに効果的です。

<script type="text/javascript">
<!-- //
if(document.referrer.indexOf("http://www.sample.com")== -1)
window.location.href="http://www.sample.com";
// -->
</script>

7) スパムの書き込みがあったときは即座に削除する。

以上です。それではスパムのない快適な掲示板運用をお祈りします。