- お読みいただく前に
-
果たしてこれがどの程度効果があるものなのか、オイラにゃ分かりません。
「試してみて効果を確認してから書けよ!」って話なんですが、残念というか幸いにもというか、オイラが借りてるbroachは完全放置状態のまま更新をしていないのでスパムボットは見向きもしてくれない。半年に1つか2つのスパムがあればいい方なんです。なので効果を確認できないわけですよ。ですのでこの記事を読んで実践してみた方は当記事のコメント欄やトラックバックで効果があったかを教えてください。んで効果があったのならこの方法をあなたのブログで記事にして広めてください。そのためこの記事は転載可能といたします。必要な部分をコピーして転載しちゃって構いません。丸ごとコピーしても構いません。その際に当ブログや当記事へのリンクや報告は不要です。記事中に引用元を記載する必要もありません。
この記事を転載可能とする目的はbroachに於けるスパム対策です。plalaがナニもしてくれない以上はユーザー同士が協力して知恵を出しあうしかないわけですよ、残念ながら。ですがオイラが書いただけでは数人の人の目に止まるだけでしょう。でもその数人の方が個々のブログで記事にすればより多くの人の目に止まります。それを目にした人が更に記事にしてくれればより多くの人に、というわけです。そのための転載可能だということをご理解ください。そして転載可能として記事を書いて広めてくだされ。
ブログの方向性によっては「効果はあったけど自分で記事を書くのはちょっと・・・」という場合もあるかと思います。そういう場合は当記事へのリンクを貼っていただくだけでも構いません。
あぁ、くれぐれも「効果があったら」が前提ね。効果が無いのに広めても・・・ねぇ。
- 2009/11/30 追記
-
拙作のbroach着せかえテンプレートには予めこの機能が盛り込まれています。
公式以外のおされな(?)テンプレートをお探しの方は着せかえテンプレートもご一考ください。
前書き
broachのコメント投稿にCAPTCHA(画像認証)を導入できないもんかとのコメントを頂いたのですが、オイラがその手段を用意して不特定多数の方々に提供するのはちょっと無理っぽい。
んじゃbroachユーザー各自が自分用にサーバーを借りてCAPTCHAを導入するってのはどうだろうと思ったんですが、鯖を借りてスクリプトを突っ込んで設定して、という作業は敷居が高いんじゃ無かろうかと。
ってことでCAPTCHAを導入する良い方法はオイラには思いつかんです。
んじゃこの記事のタイトルはなんだ?って話になるんですが、取り敢えず簡易的ではあるけどナニもしないよりは多少はマシなんじゃ無かろうかという対策方法を提案してみるテスト。
どういう対策方法かというと、JavaScriptを用いる古典的な手段です。
スパムの多くはロボットが巡回してきて自動的に投稿していきます。なんせ向こうはスパムコメントを投稿するのがお仕事、毎日数千~数万のブログへのスパム投稿を手作業でやってたんじゃ効率悪いもんね。
ところが(ひと昔前までの)ロボットはHTMLソース内のJavaScriptを解析できない。そこでコメント投稿に必要な部分をJavaScriptで記述してロボットから見えなくしちゃえ、と。見えなくしちゃえば書き込まれる心配もないわけですな。
導入方法 準備編
スペースの限られた管理画面で作業すると間違いやすいので、一度メモ帳などにソースをコピーして複製し、複製したソースを編集してから元のソースに上書きすることにします。
コピーしたソースをメモ帳などのテキストエディタに貼り付けます。
貼り付けたソースは一度保存しておくと失敗したときの保険になりますので、ファイル→名前を付けて保存 で保存しておくといいです。
導入手順1 ソースの編集
コピーしたソースの中から以下の部分を見つけてください。
ソースの記述はテンプレートによって違っている場合があります、 value=”投稿” と書いてある部分は共通だと思います、この文字を目安に探してください。
該当箇所を見つけたら、この部分を以下のように書き換えます。
該当する箇所の直後に </td> という部分があると思いますが、この箇所は含めないように注意してください。
ソースはコピーしてそのまま使えます
この作業でナニをしたのか
上記のようにソースを改変することでJavaScriptに対応していないロボットからコメント投稿ボタンを見えなくしています。
ですがこれだけでは心許ないのでもう一手間加えます。
導入手順2 更にソースの編集
ソースの中から以下の部分を探してください。先ほどの箇所より少し上の行にあると思います。
この箇所もテンプレートによって若干の相違があると思いますが、{SHOW comment_post_description} の文字は共通だと思います、この文字を目安に探してください。
該当箇所を見つけたら、この部分を以下のように書き換えます。
該当する箇所の前後に <td> </td> という部分があると思いますが、この箇所は含めないように注意してください。
この作業でナニをしたのか
コメント内容を入力するフォームをJavaScriptで表示するようにしました。JavaScriptを読めないロボットからはコメント入力フォームが見えなくなります。
導入手順3 ソースの上書き
メモ帳での編集が終わったら、編集済みのソースを全てコピーします。
コピーしたら先ほどの管理画面を開いて、Commentのソースが表示されていることを確認。
確認したらメモ帳からコピーしたソースを上書きして保存します。
(管理画面のソース上で右クリック→全て選択→右クリック→貼り付け→保存ボタン)
導入後の表示結果
今回の対策を施したコメントフォームをJavaScriptを有効&無効にして表示した場合の画像です。
動作確認ブラウザ
ソース改変後のコメント投稿は以下のブラウザで正常に動作することを確認しています
- Internet Explorer 5.5 , 6 , 7 , 8
- Mozilla Firefox 3
- Opera 10 beta
- Windows Safari 3.2.1
- Google chrome2.0.172.31
参考URL
http://pub.ne.jp/blackbird/?action=comment&entry_id=2139519
この方法のデメリット
この方法にはいくつかの問題点があります。まずはなんといっても「JavaScriptを読み込めるスパムボットには通用しない」ということ。
JavaScriptを読めるスパムボットというのがどれくらいあるのか、全体の割合でどれくらいなのか、オイラは知りません。もし殆どのスパムボットがJavaScriptを読めるとしたらこの方法はあまり役に立たないかもしれんです。ですがJavaScriptを読めるボットが全体の5割程度であるとしたら、単純計算で総スパム数の半分を遮断できることになります。
こればかりは実際に用いた結果で判断するしかありませんなぁ。
もう一つの問題点は普段からJavaScriptを切っているブラウザを使っている人はコメント投稿が出来ないということ。
セキュリティ上の観点で普段からブラウザのJavaScriptを無効にしている人ってのが少数ですが存在します。実はオイラもそんな少数派の一人です。今回の手段ではそういう人からはコメントが受け付けられなくなってしまうんですな。
ですが、普段からJavaScriptを無効にしているような人は、必要とあらばマウスジェスチャなりキーボードショートカットなりの方法で瞬時にJavaScriptをONにできるようにしているはずです。少なくとも「JavaScriptを有効にする方法が分からない・面倒くさい」という人は普段からOFFにしたりはしないはず。じゃなきゃブラウジングが不便で仕方がない。
なのでこのデメリットはあまり気にしなくてもいいかもしれません。
尚、JavaScriptを切っている訪問者向けにソースにその旨を記述することもできますが、今回はスパムボットを欺くための手段ですから、noscriptは記載しないことにしています。
必要であればテンプレートソースの表示させたい部分に以下のソースを追加してください。
転載用ソース
plala broachに於いて当記事で記載されている内容の有効性が認められ、記事の内容を転載する際にご利用ください。
圧縮ファイルになっています、解凍して出来たテキストファイルを開いて必要な部分を切り取ってご利用ください。丸ごとコピペでも構いません。
(このソースを用いる場合は記事投稿に高機能エディタを使わないでください)
(圧縮方法が異なるだけで2種類とも中身は同じです。)
2009/06/23 20:10
内容に不備があったためファイルを差し替えました。