先日、CanCam新世代オーディションの非公式サイトを閉鎖しました。

このサイトで「エンドユーザーがお気に入りのオーディションの参加者にポイントを付与し、モデルはそのポイント数に応じてランク付けされる」という機能を実装するためGoogle+ Sign-Inを利用しています。

想定されるスパム行為

「ポイントの増減でランキング付け」という機能で真っ先に問題になるのはスパム対策。複数のGoogleアカウントでログインすれば、特定のモデルに大量にポイントを付与されランキイングが不正に操作されてしまいます。

ただし、よくあるスパム対策「IPアドレスやホストで制限する」では、同じ事務所からのアクションまで対象になる可能性が高くなります。何かいい対策はないものかと考え、単純でSNSらしい対策を施しました。
”アカウントの大量作成”というスパム行為はGoogleさんに任せればいいですし。

スパム対策の実装

下図のようにそのアカウントを判断しました。

スパムアカウント判断テーブル
スパムアカウント判断テーブル

まず大きく2つのグループに分けます(一番左縦列)。
プロフィールアイコンを設定しているユーザーとそうでないユーザーです。

プロフィールアイコンを設定せずにSNSをするということは、ボクはあまり理解できないのですが、そういう人もいますよね。

そして右側の列、アイコンを設定しているユーザーであれば、一般公開の投稿(再共有除く)をしているか、もしくはポイントを与えるモデルにコメントしているか。
アイコンを設定していないユーザーはポイントを与えるモデルにコメントしているか。
これに当てはまらなければポイント付与ができないようにしました。

対策の効果のほどは・・・

こんな感じの緩いスパムフィルタでした。
Google+のAPIは固有IDでは検索できないのもあり、同姓同名ではすり抜けてしまうなど問題は多々。
モデルのブログ経由でこのサイトのことを知りポイントを与えようとしたユーザーも引っかかる可能性もあります・・・。

Google+での人気を測りたかったのでまぁいいかなと。
ポイント操作は成功失敗含め、重複なしで500件ほど。
そのログを見ていると大体はパスしていますし、同じ時間帯に似た名前がフィルターに掛かるというのも何度かあったのでまぁ成功だった・・・かなと思います( ˘ω˘)

何か一言あれば!!

質問とかツッコミとかお気軽にコメントしてください。がんばって返します。

コメントを残す

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