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


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



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

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のプラグインを作成する方法

おすすめの記事

WordPress公式テーマTwenty Tenを子テーマでレスポンシブWebデザインに変更

WordPress公式テーマTwenty Tenを子テーマでレスポンシブWebデ…

WordPressの最速キャッシュを探せ!APC、memcached、Transients APIを比較

WordPressの最速キャッシュを探せ!APC、memcached、Transients…

標準のアンインストーラーで消えないソフトを徹底的に削除する方法

標準のアンインストーラーで消えないソフトを徹底的に削除する…

サーバで管理していたWordPressをローカル環境に移行する方法

サーバで管理していたWordPressをローカル環境に移行する方法

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポンシブイメージの基本

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポン…

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャッシュの仕組み

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャ…

WordPressでアイキャッチ画像をサムネイルとして一覧ページに表示する方法

WordPressでアイキャッチ画像をサムネイルとして一覧ページに表…

本気で作りたい人向け、WordPressプラグインの作成方法

本気で作りたい人向け、WordPressプラグインの作成方法


コメントを残す

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

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください