携帯のアクセス制限(荒らし対策) 個体識別
掲示板を運営していると迷惑なのが、荒らし行為。
通常IPやホストでアクセス制限を掛けたりしますが、ホストによる制限は範囲が広くなりすぎるし.htaccessで弾こうとするとホスト⇒IPの変換をするのにサーバー負荷がかかるのでオススメできず。
よってIPで弾くことになるのですが、現在IPというのはどこのプロバイダでも動的IPの場合がほとんどなので、制限をかけても時間が経つとIPが変わってしますいます。
しかし短期的には効果があるのでその都度弾いていけばよいのですが、問題は携帯からの投稿。
パソコンのIPはルータやモデムなどの電源を落とさないとすぐには変わりませんが、携帯だとページにアクセスする度に変わります。
荒らし行為をするのはパソコンをもたず携帯からしか投稿できない小中高生が多いらしい(大人はそんな不毛なことに使うエネルギーがない・・)ので、これらをなんとかしないといけんわけですな。
PERL・CGIで書かれている掲示板なら、環境変数を取得する簡単なプログラムを追加することで携帯の個体識別番号が取得できるので、これを使ってアクセス制限をかけるのが常套手段かと思います。
以下取得できる情報と環境変数。
◆docomo/iモードID
英数字の7桁で大文字・小文字の区別あり
$ENV{'HTTP_X_DCMGUID'}
※実行CGIのファイル名に?guid=onというパラメータが必要
◆au/EZ番号(サブスクライバID)
12345678901234_56.ezweb.ne.jp という形式の29桁のID
$ENV{'HTTP_X_UP_SUBNO'}
◆softbank
USER AGENTの中にあるSNの後の数字(P型は11桁、それ以降は15桁)
$ENV{'HTTP_USER_AGENT'}
◆jphone
16桁
$ENV{'HTTP_X_JPHONE_UID'}
これを組み込んで荒らしの個体情報を取得し、アクセスの度に参照するようにすればよいわけです。
ただし、投稿されるたびに余計なプログラムが動くのでサーバー負荷が高まります。
ページ閲覧時は弾かずに、コメント投稿時だけ弾くするようにするなど、プログラムが動作する範囲を少しでも狭くすることで低減はできますが。。