人気の画像掲示板「JoyfulNote」でスパム対策を追加


投稿日:2015年8月19日
  • 0
  • 0



まだまだ書き込みもスパムも現役です

JoyfulNote

掲示板という表現自体が古めかしく感じる昨今、隔世の感さえ抱きますが、まだまだ現役で使用しています。
当方で管理しているアクアリウムWikiではWiki編集の手間を考慮して、画像掲示板へのアップロードにも対応しています。

JoyfulNoteはデフォルトで多くのスパム対策をしていますが、残念ながら対策を取り入れてもスパムとのイタチごっこです。
やはり自分のサイト限定の対策を加えるのが一番です。


JavaScriptが有効かチェックする

スパムは専用のツールで機械的に書き込むため、JavaScriptを解釈して実行するという機能を実装していないことがほとんどです。
そこでフォームに非表示の項目を作り、JavaScriptでテキストを入れ込みます。

その値をバリデーションするという仕組みです。

tmpl/bbs.htmlのhead部分に追加

<script type="text/javascript">
setTimeout(function(){
	var hidden = document.getElementById('hidden');
	hidden.value = 'BOT対策';
}, 5000);
</script>

同じファイルのformの部分に追加

<input type="hidden" id="hidden" name="hide" value="">

regist.cgiの490行目あたりフォーム入力チェックに項目を追加

if ($in{hide} ne "BOT対策") { $err .= "JavaScriptを有効にしてください<br>"; }

JavaScriptでidがhiddenの項目に「BOT対策」という文字列を追加します。
これでJavaScriptを解釈できないBOTの書き込みは排除できます。

また実行を5秒遅らせることで高速で機械的な書き込みを排除しています。どんな掲示板の達人でもページを開いてから5秒で書き込みをする人はいないと思います。

人間でもJavaScriptが無効の場合を考慮してエラー時のメッセージでJavaScriptを有効にする由を伝えます。


入力を禁止するtextareaを追加

上の対策に加えて、非表示のtextareaを追加します。
textareaはBOTがリンク等を書き込みを行いたい項目なので、必ず何かしらの書き込みを行います。逆に言えばtextareaに項目を入力しないBOTは無意味。

tmpl/bbs.htmlのform部分に追加

<textarea id="hoge" name="comment2" style="display:none;">

regist.cgiの490行目あたりフォーム入力チェックに項目を追加

if ($in{comment2} ne "") { $err .= "不正な操作<br>"; }

通常のtextareaをcssで消しています。これが表示か非表示かというのはBOTには解釈が難しいと思います。
今回は項目が空でない場合は「不正な操作」というエラーメッセージになります。

人間では非表示の項目に値を入力することはできないので、このエラーメッセージは人間が見ることはありません。そのため意味のない文字列でも構いません。


上記の設定をしてから数日経過していますが、スパムは1件も書き込まれていません。

対策をした掲示板も紹介しておきます。
アクアリウムWiki画像掲示板


現在のページを共有する



現在のページに関連する記事

PukiWikiで複数行のコメントを挿入 PukiWikiで複数行のコメントを挿入
人気の画像掲示板「JoyfulNote」でスパム対策を追加 PukiWikiをビジュアルエディタ(TinyMCE)で編集できるプラグインを作成
人気の画像掲示板「JoyfulNote」でスパム対策を追加 WordPressのショートコードを利用してSNSのVertical Balloonを設置する方法
人気の画像掲示板「JoyfulNote」でスパム対策を追加 「最新版」WordPressに各種ソーシャルメディアボタンを追加する方法
PukiwikiでGoogle Analyticsを使う PukiwikiでGoogle Analyticsを使う
人気の画像掲示板「JoyfulNote」でスパム対策を追加 これ以上ないくらい簡単な例から学ぶ、レスポンシブwebデザインの作り方
人気の画像掲示板「JoyfulNote」でスパム対策を追加 5段階評価プラグインを通して学ぶPukiWikiのプラグインを作成する方法

おすすめの記事

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

Googlebotを手懐ける!robots.txtの書き方とrobots.txtテスターの使い方

Googlebotを手懐ける!robots.txtの書き方とrobots.txtテスター…

そのサイト、WordPressじゃなくてWixで十分じゃない?

そのサイト、WordPressじゃなくてWixで十分じゃない?

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

Google Feed APIの代替手段としてjQueryだけでRSSを表示する方法

Google Feed APIの代替手段としてjQueryだけでRSSを表示する方法

日々の単純作業を自動化できるUWSCの使い方(入門・書式編)

日々の単純作業を自動化できるUWSCの使い方(入門・書式編)

初心者でも安全なLAMP環境を構築する方法を解説

初心者でも安全なLAMP環境を構築する方法を解説


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。