スパマーとの戦い方
本サイトの他力本願型ニュースにて発生していたスパマーの封じ込めに今の所成功しているので、対策手法の共有を行わねばと義憤に駆られて筆を取りました。掲示板等のユーザー投稿式のサービスで同じような悩みを持っている人は多いはず。それもこれも後の世のため。
私の対決したスパマーは、週2、3回ぐらい偽物ブランド物サイトへのリンクと紹介文を張って去っていくというものでした。日本語の怪しさとIP情報から多分中華系の方。スパム対策のかいくぐり方の柔軟性からみて自動投稿ではなくて、手動でせっせと投稿していたと思います。最初に私がとった対策は以下です。
・IP制限
スパム投稿をしてきたIPに対して、サイト全体をアクセス禁止にした
・NGワード
スパムの本文によく登場した、それっぽい単語(激安など)をNGワードに設定。エラーメッセージは「使用出来ないワード"激安"が含まれます」
・NG URL
スパマーの偽物ブランド通販サイトのURLをNGに設定。エラーメッセージは、「使用出来ないURL"http://hoge.com/"が含まれます」
上記は気持ちのいいぐらいに全部効果がありませんでした。今思うとやってはいけない対策方法だった。IP制限は別のIPで投稿する事で回避されました。NGワードは、違う文言に言い換えられました。NG URLは短縮URLを使われる事で回避されました。私も回避されるたびに禁止IPやNGワードを追加して対応したのですが、完全にいたちごっこ。
この辺りで温厚な私も荒ぶってですね、本気で対策を行いました。テーマは「スパマーに何一つ情報を与えない」私は今まで、親切にもスパマーにどうして駄目なのかを教えてしまっていたのです。サイト全体でステータスコード403が返る事でアク禁しているIPを教えていて、エラーメッセージでどのワードが駄目なのかを教えていた。本気で行った対応は以下。
・IP制限
IP単体ではなくてサブネットを使って範囲でごそっとアク禁。whoisコマンドでそのIPが所属している範囲を調べて丸ごと規制。例えば「113.96.0.0/12」こんな風。この例だと100万IP程が規制の対象になります。中華系のIPなのでまあ多少スパマー以外を巻き込んでもいいかなと。あとサイト全体のアク禁ではなく、ニュース投稿時にIPチェックを行うように変更。サイトは普通に閲覧出来るけど投稿だけ出来ない。エラーメッセージは「スパムと判定されました」
・NGワード
エラーメッセージだけ変更。エラーメッセージは「スパムと判定されました」
・NG URL
短縮URL対策として、URLそのものだけではなく、そのURLのリダイレクト先も調べてNG URLではないかをチェック。この方法だとリダイレクトしないタイプの短縮URLは回避出来ないけどまあ仕方がない。エラーメッセージは「スパムと判定されました」
これだけやったら黙りました。細かくリダイレクト先のチェックとかやっていますが、おそらく最も重要なのは、エラーメッセージを統一した所だと思います。どういったチェックにひっかかったのかを絶対に伝えない。今後新しいスパムチェック機能を導入しても当然「スパムと判定されました」と表示します。大切な事なのでもう一度「スパマーに何一つ情報を与えない」
最後にニコ生のNGシステムが凄かったのでご紹介します。ニコ生でNGワードを含むコメントを投稿しても、普通に投稿出来ます。ちゃんと画面にもコメントが流れて表示される。でも投稿出来た風に表示されるのは自分だけで、他の人から見ると投稿が見えないという仕組みになっています。全力で煽りを入れても他の人は見えないので完全スルー。他力本願型ニュースの場合スパム判定された事を伝えてしまっているのですが、スパム判定された事すら伝えないという極まったシステムです。スパマーは投稿出来ていると思っているわけですから、対策を行おうとも思わない。なんて美しい仕組み。