スパムフィルタプラグイン(学習機能無し版)
- 投稿者: あき
- カテゴリ: 新規
- 優先度: 低
- 状態: 提案
- 日時: 2007年04月11日 02時16分02秒
内容
スパムフィルタ付きコメントプラグインの簡易版を作成しました。
標準インストールプラグインのcomment,bbs,bbs2,bugtrackに対応しています。
pcomment,bbsxプラグインや、通常のページ編集にも対応しました。
こちらは学習は行えませんが、一般的なある程度のスパムは弾いてくれます。
スパム投稿への対応が日課になってしまっている賑やかなサイトの運営者の皆様、是非お試し下さい。
どのようなスパムメッセージを弾いてくれるかはこちらの例をご覧下さい。
実際に適当な文章を投稿して確認して頂いても結構です。
詳解
本プラグインは、迷惑なスパム投稿に対抗する正攻法スパム対策プラグインです。
投稿された文章を各フレーズに分解し、そのパターンから投稿された文章がスパムか否かを判定します。
(内部アルゴリズムには独自のニューラルネットワーク技術を用いています)
禁止文字種や、禁止語句による判定とは異なり、より人間らしい判定が行われるのが特徴です。
スパムクローラー(スパムを自動投稿するプログラム),人的を問わず、高い次元でスパム投稿をシャットアウトしてくれます。
但し、当プラグインは軽量版(学習機能無し版)のため、一時凌ぎ的対策としてご利用ください。
当プラグインの特徴:
- コンパクトで導入が簡単です。(本体と同じPurePerlです。外部モジュールは不要です)
- 学習機能がありません。誤判定してしまう文章は毎回誤判定します。未知のフレーズに弱いです。
判定精度はそこそこ高いつもりですが、作者的には不満です。改善していきます。
- 文字数が少ないほど、判定が苦手です。
- 標準搭載のスパムワード(禁止語句)と異なり、強引な締め出しは行われません。
- その分、保存動作は遅くなります。
- CAPTCHAを用いたスパム対策プラグインと異なり、投稿時に指定された文字を入力する手間がありません。
- スパム判定をすり抜ける文章だった場合、スパムクローラーであっても投稿を受け付けてしまいます。
- Akismetを用いたスパム対策プラグインと異なり、Akismetサーバーへの接続が不要です。その分高速です。外部に接続できないローカル環境でも利用できます。
- 未知のフレーズ(学習させていないフレーズ)や未知のURLを含む文章の判定が苦手です。当プラグイン(学習機能無し版)には学習機能がないため、誤判定してしまう文章は毎回誤判定します。
- クローラー対策プラグイン(JavaScriptを用いて投稿フォームをクローラーから見えなくしたプラグイン)と異なり、人手によるスパム投稿にも対応できます。JavaScriptが利用できないブラウザでも閲覧できます。
- スパム判定をすり抜ける文章だった場合、投稿を受け付けてしまいます。
更新履歴
コメント、BBS、バグトラックプラグイン、及びpcomment,bbsxプラグイン、及びページの編集に対応:
- _ex_spam_filter_light_20070723.zip(878) 初版リリース。
- ページの編集に対応しました。添付ファイルをひとつにまとめました。インストール方法が若干変わりました。
- _ex_spam_filter_light_20070724.zip(931) 辞書改善。
- さらにさらに学習を強化しました。ロジックの見直しにより、辞書サイズは以前より小さくなりました。判定精度がより高くなりました。
- _ex_spam_filter_light_20070726.zip(953) 辞書改善。
- URLのみのスパムに弱かったため判別できるよう修正しました。特定のフレーズにより極端すぎる判別が行われないよう重みに上限値を設けました。
- _ex_spam_filter_light_20070803.zip(914) 辞書更新。 ←最新版
- 辞書を学習機能有り版に合わせました。
- _ex_spam_filter_light_20171207.zip(481) FSWiki3.6.4対応
- FSWiki3.6.4以降に対応。2017/12/7までの各プラグイン修正を反映しました。(by KG)
インストール方法
- 添付ファイルを解凍し、ディレクトリごとpluginディレクトリに放り込んでください。
- プラグイン設定画面で「_ex_spam_filter_light」を有効にしてください。
- 非標準プラグイン(pcomment,bbsxプラグイン等)にフィルタリングをかけたい場合は、plugin/_ex_spam_filter_light/Install.pmの13行目辺りのコメントに従って該当するプラグインに関する行を有効にしてください。
詳細説明
- 投稿されたメッセージのフレーズを解析し、スパムか否かを判定します。
- スパムと判定された場合、投稿は拒否され、拒否された旨のエラーメッセージが表示されます。
- 拒否されたメッセージはlog/spam_*.txtに蓄積されていきます。
- 上記以外は本来のプラグインの挙動と同じです。
因みに、現時点(初版)での判定精度は、非スパムの判定精度が98%程度(165件中)、スパムの判定精度が73%(83件中)程度です。
因みに、現時点(20070724版)での判定精度は、非スパムの判定精度が99%程度(179件中)スパムの判定精度が97%(172件中)程度です。
因みに、現時点(20070726版)での判定精度は、非スパムの判定精度が98%程度(179件中)スパムの判定精度が98%(174件中)程度です。
因みに、現時点(20070803版)での判定精度は、非スパムの判定精度が99%程度(227件中)スパムの判定精度が99%(151件中)程度です。
注意:非スパム/スパムの切り分けは、本サイトのサイト内容向けに特化させてあります。(ジャンルの異なるサイトでは判定精度は落ちます。学習有り版のリリースをお待ち下さい学習機能有り版をご利用下さい)
ライセンス
- GPL
対応バージョン
- 3.6.2 ←確認したバージョンです。その他のバージョンでも問題ないはずです。
コメント
- 最近、コメントスパムが始まったので、bbs はログインしなければ見えないように、そして、コメントはこのプラグインを使わせていただいています。今のところ大丈夫なようです。できれば、bbs についてもアンチスパム機能があるといいと思います。 - わたる (2007年04月15日 09時33分21秒)
- ありがとうございます。そのまんま同じような機能でよければきっと簡単にできますよ。そう考えて設計しましたので…。ですし、コメントプラグインより比較的文字数が多くなりますのでその分判別精度も高く出るはずです。個人的にはそちらの方が精度の高さをアピールできて嬉しかったり…。bbs系のプラグインと言ってもいろいろありますので、どのプラグインかご指定くだされば即対応させて頂きます。 - あき (2007年04月15日 10時00分44秒)
- とりあえず、標準のbbsプラグイン(bbs,bbs)には対応しておきました。 - あき (2007年04月15日 13時51分41秒)
- comment,bbs,bbs2,bugtrackのそれぞれのプラグインに対応し、一つにまとめました。_ex_spam_filter_light_20070418.zip(893)です。 - あき (2007年04月18日 18時39分28秒)
- BugTrack-plugin/82 への対応は出来ないでしょうか?宜しく御願い致します。 - kitta (2007年06月04日 12時10分55秒)
- すみません。暫く見てませんでした。pcommentですね。そうですね。欲しいですね。ちょっとなかなか時間がとれないのですが、了解しました。現行版は最後の調整ミスで英単語のみのスパムに弱くなってますので、それも併せて修正したいと思います。 - あき (2007年06月10日 23時40分42秒)
- 有り難うございます。宜しくお願いいたします。 - kitta (2007年06月11日 21時46分03秒)
- すみません。すっかり忘れてました。近日中に対応してアップします。 サンプルサイトの方も、整理します。スパムがすごいことなってます。(^_^;) サンプルが多く取れてて更新が楽しみ…。o(^O^)o - あき (2007年07月12日 12時59分00秒)
- はいぃ 待っておりますです。 - kitta (2007年07月12日 15時36分43秒)
- pccomentプラグインにも対応しました。ちょっとスキル不足でファイルを一つにまとめられませんでした。pccomentプラグインを使用する場合は、_ex_spam_filter_light_20070714_pcomment.zip(828)をご利用ください。>kitta殿 - あき (2007年07月14日 21時49分27秒)
- 有り難うございます。嬉しいです。 - kitta (2007年07月14日 21時58分49秒)
- BBSXプラグイン(ファイル添付機能付きBBS)にも対応しました。 - あき (2007年07月19日 17時04分54秒)
- 申し訳ございません。バグがありました。上書き更新しました。 - あき (2007年07月19日 18時34分42秒)
- 通常のページの編集(新規ページの作成も含む)にも対応しました。管理がややこしいので提供する添付ファイルは一種にしました。インストール方法が若干変わりました。非標準プラグイン(pcomment,bbsxプラグイン)を使用する場合は、Install.pmファイルを若干修正する必要があります。 - あき (2007年07月23日 11時33分41秒)
- 度々すみません。またまた更新しました。(^_^;) 今回は辞書の強化とそれに伴うロジックの改良を行いました。判定精度が飛躍的に向上しました。反して辞書サイズは以前より小さくなりました。_ex_spam_filter_light_20070724.zip(931)です。 - あき (2007年07月24日 21時17分50秒)
- ページの編集時に スパムフィルタを働かせたくな時は Install.pm 19行目コメントアウトで OK? - kitta (2007年07月24日 22時27分06秒)
- はい、そのように作ったつもりです。 - あき (2007年07月24日 23時19分08秒)
- 了解です。このプラグイン素晴らしいです。最近は URL だけのコメントスパムだけはすりぬけて来ちゃうんで、禁止語句に ttp:// を入れて使っています。BugTrack-plugin/347あたりと併用出来れば本当は嬉しいかな とか 思ったり 思わなかったり...。 - kitta (2007年07月25日 09時49分55秒)
- ありがとうございます。URLだけのコメントスパム…、なるほど…、毎回記入されるURLも変わるでしょうし、大変ですね。可能な限り対策を練りたいですので、もしよろしければサンプルをここに投稿して頂けたりしませんか? 多彩なバリエーションのサンプルにとても飢えています。ご協力頂けると嬉しいです。邪道ですが、Install.pmの31行目辺りの$fJudgmentByEnglishの値を0.8くらいにすると、英字ばかりのコメントでしたら弾いてくれます。 - あき (2007年07月25日 12時15分08秒)
- 全く考えたこともなかったのですが、BugTrack-plugin/347との併用とは、どういった運用方法でしょうか? - あき (2007年07月25日 12時15分22秒)
- A:どちらを利用するか選択できるようにする?
- B:CAPTCHAにより手動での投稿であることを確認したうえでさらにフレーズによる判定を行う?
- C:フレーズによる判定を行い、「怪しい」と判定された場合だけCAPTCHAを表示し手動での投稿であることを確認する?
- 『A』は可能性が低そうですので、解説は省略します。『B』でしたら、対応は簡単にできると思います。ただ、個人的には利便性と必要性の部分でNGと考えています。ユーザに面倒を強いたくないので本プラグインを発案しました。(必要性をご教授頂けると考え方が変わるかもしれません。仰って頂けるとありがたいです。他システムですが、そういった運営を行っているものは見かけました) 『C』でしたら、有効そうですね。少々お時間がかかりますが、検討してみようと思います。ただ、個人的にはCAPTCHAに頼らなくてもよい手段(DNSBLとの併用)や単独での精度向上を目指す方向で極力考えていきたいです。 - あき (2007年07月25日 12時15分42秒)
- あ、じゃサンプル収集してみます。と、A~Cの件。Bのつもりで書いてました。そして「利便性と必要性の部分でNGと考えています。」なんだろなぁ ってのも理解しているつもりです。で 出て来たC案。魅力的ですねぇ。 - kitta (2007年07月25日 16時12分52秒)
- ありがとうございます。URLだけの書き込み、他所のサイトでいくつか見かけたんですが、それを本プラグインを通してみるときちんとはじいてくれるんですよね。学習機能有り版でしたら、すり抜けたものを学習することで精度は高くなっていくと思います。B案は、これだけ精度が高く出てる状況下では、面倒さだけが特徴的な機能となってしまいそうです。(やはり個人的には却下かな?) C案は、プログラムの構成を変えなければなりませんので、対応するか否かを含め吟味させてください。(オーバーライドするプラグインが一種ならサクッとやってしまいますが、現時点で既に数種が対象になってますので…。コメントプラグインだけ対応ってのも統一感が無いですし、むしろコメント機能こそ単純な操作が理想だと思っています) 学習機能有り版の開発を優先させたいです。 - あき (2007年07月26日 11時05分25秒)
- 追記です。DNSBL(URLBL,URIBL)との併用について、昨日調査しましたので現時点での感触をコメントしておきます。個人的にはURI(のドメイン名部分)での照合が理想で、公開RBLサーバ(例:RBL.JP)への問い合わせを行うようにさせてやれば、実装自体は比較的簡単にできると思います。おそらく、RBLプラグインとの併用みたいなのになるのかな? ですが、やはりパフォーマンス(速度)面で難があると思いますし、ローカル環境やソケット系モジュールが利用できない環境では動作しないのも気になります。ってことで、やはりこれも却下かな。(バリエーションとしてはいいと思いますが、どうもそれが私が理想としている解だとは思えません) - あき (2007年07月26日 11時35分25秒)
- URLだけが記載されたコメント、なるほど、ほんとにURLのみだったんですね。検証の結果、OKです。対応は可能でした。やはり「URLが記載されていただけで弾く」ってのは強引すぎます。(^_^;) ってことで、今日の夜にでもアップします。お待ちください。ところで…、「http://」ではなく「ttp://」としているのは何か意味があるのですか? - あき (2007年07月26日 12時57分17秒)
- 一時期 ttp:// で大量に書込まれた事があったんで そんな設定にしていました。 - kitta (2007年07月26日 16時00分39秒)
- URLのみのスパム等に対応した版をアップしました。_ex_spam_filter_light_20070726.zip(953)です。 - あき (2007年07月26日 22時19分32秒)
- このプラグイン素晴らしいです。全然スパムな書込み無くなっちゃいました。で、ここ数日使ってみて 思った事を書いておきます。「怪しい時だけ CAPTCHA」 って ものすごく魅力的かもしれません。非スパム時の事なんですが スパムでもなんでも無いのに どうしても弾かれちゃう時って有ると思うんです。現状だとそんなコメントの 救済策が有りません。けど、「怪しい時だけ CAPTCHA」 なら救われるかなぁ と。この間一度だけ 自分の所で 私のコメントを弾かれて ムッ! としたんですけど そんな時も「怪しい時だけ CAPTCHA」 ってものすごく助かる気がします。むろん 学習機能有り版 が最優先なのは当然なんでしょうけど 学習中の救済策にもなると思うんです。 - kitta (2007年07月30日 09時51分01秒)
- 了解です。迂闊に即答はできませんが、前向きには検討させて頂きます。「精度云々ではなく、スパムではないのに弾かれるときがあるのが問題」という部分は理解できました。私もそう思います。今現在気になっているライセンスや互換性、対応コスト等を総合的に判断して、最適な落とし処を見つけたいと思います。 - あき (2007年07月30日 15時50分08秒)
- BugTrack-plugin/347との併用、ライセンスが微妙なんですよね。フォントのライセンスがBSDだと、GPLと混在させることができないんです。フォントくらいね、使用するのはたかがアルファベット26文字ですし独自に作成してもいいんですが、でも面倒臭いなぁ。ベースにして少し変形させるくらいじゃ、著作権侵害になってしまうのかな? どなたかお知恵を貸してください。 - あき (2007年07月31日 17時42分01秒)
- 後、モバイル端末からだとどうなんでしょう? CAPTCHAの部分、全て文字なので結局見えなくて使えないような…。 - あき (2007年07月31日 17時42分14秒)
- BugTrack-plugin/347以外の方法として、BugTrack-plugin/302との併用みたいなのはいかがでしょう? 「怪しい」と判断した場合だけ、クローラーには解読が困難とされるJavaScriptにて認証用のフォームを出力するとか…。(単に予測できない文字列であれば何でも良いのでMD5認証でなくてもよいと思います) ユーザは確認ボタンをクリックするだけで良いようにします。JavaScript非対応ブラウザではこの救済措置は無効になりますが、怪しくなければ通常通り投稿が許可されるのであまり問題にはならないのではないかと…。いかがでしょう? 実装は…、やはり結構面倒ですが…。(-o-;) - あき (2007年07月31日 17時42分28秒)
- おぉ〜 何か苦しんじゃってます?フォントはGPLライセンスの物と入替えちゃえば何とかなっちゃいそうな... すいません 素人なもんで簡単に言っちゃってます。確かに携帯端末からBugTrack-plugin/302のCAPTCHAは無理かもしれませんねぇ。で、携帯端末は判定しないとかするとそこがスパマーの標的にされちゃいそうですし。怪しい時だけBugTrack-plugin/302あたりはいいかもしれませんね。 - kitta (2007年08月02日 09時17分05秒)
- GPLライセンスの物と入替えちゃえば何とかなっちゃいそうな...>そのまんまです。単に探すのが面倒なだけです。モバイル端末から利用できないとすると、(JavaScript版もそうですが、)魅力が半減してしまいますね。悩みどころです。 - あき (2007年08月02日 10時50分34秒)
- 携帯端末は判定しないとかするとそこがスパマーの標的にされちゃいそうですし。>逆です。素通りさせるのではなくスパム判定されて救済してもらえない方向なので安全です。大丈夫ですよ。 - あき (2007年08月02日 10時50分50秒)
- 怪しい時だけBugTrack-plugin/302あたりはいいかもしれませんね。>前向きに検討します。あ、それから、近々、学習機能有り版を公開します。 - あき (2007年08月02日 10時51分02秒)
- 学習機能有り版をリリースしました。 - あき (2007年08月02日 23時56分34秒)
- 学習機能有り版はまだ試していませんが、無しばんは2週間程度使っています。便利です。 - oi21 (2007年08月09日 22時29分10秒)
- oi21殿>ご利用ありがとうございます。かな〜り気持ちよく弾いてくれますよね? 学習有り版をメインに考えてましたので、宜しければそちらに乗り換えてください。気が付いた点とかあれば何なりと仰って下さいね。 - あき (2007年08月10日 00時03分32秒)
- BugTrack-plugin/302、効果ないですね。既存の運営中のサイト、BugTrack-plugin/302を入れてたんですが、英文のみのスパムがガンガンきてました。ブラウザ上から投稿するような仕組みのツールなのかな? JavaScript版なら、効果あるんだろうか? 一度目は弾いて二度目は受け付ける…。二度目って判定はどうやってしよう? やっぱりCAPTCHAなのかな? 問題は尽きないなぁ。 - あき (2007年08月10日 08時41分50秒)
- 借りているサーバで学習機能有り版が使えなかったので、こちらを使わせていただいています。わりと良い感じでスパムが弾かれていて嬉しい限りです、ありがとうございます。 - 犬山ぽち丸 (2007年09月03日 11時03分15秒)
- そうですかぁ。(-o-;) やはり使えないサーバがあるんですね。システム要件としては制限事項は設けてないはずなのですが…。改善します。よろしければどういった理由で使えないのか教えて頂けると幸いです。やはり、 Internal Server Error でしょうか? - あき (2007年09月03日 11時32分53秒)
- ええ、仰るようにInternal Server Errorでした。管理画面のスパムフィルターのところで、学習させようとするとそうなってしまいます。サーバで使用メモリに制限を加えているらしいので、それが原因の可能性もありますけども。 - 犬山ぽち丸 (2007年09月08日 14時59分05秒)
- 貴重な情報ありがとうございます。Internal Server Error、厄介ですねぇ。コーディング上のバグじゃないだけに、対策が果てしなく面倒です。今また改良版を開発中です。学習の際、指示されたままを学習するのではなく、本当に学習が必要なのか否かを事前確認してから必要だと判断した場合のみ学習するようにしました。既に動作はしてますが操作性がイマイチなのでUI周り(扱い易さ)を改良中です。他に、Internal Server Error回避のための対策も、重点に考えながら改造しています。なかなか、大変です。 - あき (2007年09月09日 12時11分21秒)
- 公式サイトでも使用されているプラグインですので、最新の fswiki 3.6.4 用を作成しました。_ex_spam_filter_light_20171207.zip(481) - KG (2017年12月07日 19時17分17秒)
最終更新時間:2017年12月07日 20時26分44秒