質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

4630閲覧

CGIでクライアントを識別する方法

退会済みユーザー

退会済みユーザー

総合スコア0

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2017/02/13 01:47

編集2017/02/13 02:15

初めて質問させていただきます。

私は趣味で多人数で遊べるブラウザCGIゲームを作っています。
言語はPerlで記載しています。

ずいぶん前から問題になっているのがユーザの多重登録という問題です。
このゲームの前提として、登録は1ユーザにつき1つまでなのですが
1ユーザが複数登録して不正をする方がたえません。
以前まではIPアドレスやメールアドレス、UserAgent等をチェックして
ユーザが多重で登録していないか確認していたのですが、
フリーメールが簡単に取得できるようになったこと、
PC以外にスマホ2台~3台つかって登録できること、
UserAgentは偽装できること
などから、なにか良い多重チェック方法がないか調べています。

JavascriptでクライアントのMACアドレスを取得して、
それをサーバに送信し多重チェックにつかえないものかと
調査していましたが、JavascriptでMACアドレスの取得はできない
ようでした。

クライアントが簡単に偽装できず
クライアントを識別する良い方法はないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

個人でやるのは実質難しいですが・・・

1.SMS認証 - 複数台持ってる人への対応ができないので、それは諦める
2.クレカ認証 - 複数枚持ってる人への対応ができないので、それは諦める
3.写真付き公的証明書画像アップロードによる本人認証 - ほぼほぼ確実に対応可能だが、個人運用のサイトに写真付きの公的証明書画像のアップロードはほとんどのユーザーが実施しない

一部の利用者に不便をかける可能性はありますが、キャリアメールのみ登録可能とし、メール認証するのはどうでしょうか。

あとは・・・複数アカウントを登録することでゲームを優位に進める仕様を見直すくらいしか思いつきません。

投稿2017/02/13 01:58

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/13 06:29

早速のご回答ありがとうございました。 キャリアのメール認証も考えましたが、スマホ2台持ちもそれほど珍しくなくなってしまった今となっては、あまり有効な手段ではないのかと考えておりました。 「複数アカウントを登録することでゲームを優位に進める仕様を見直す」に関しては、まだ検討の余地もありそうなので考えてみることにします。 ありがとうございました。
guest

0

ベストアンサー

1.電話番号(SMS)で登録・認証する
登録時に電話番号を必須とし、SMSでその電話番号宛にワンタイムキーを送付。そのワンタイムキーを入力する事で登録完了とする。
電話番号の取得にお金がかかる事で、一定の抑制にはなると思いますが、私もSMS可能なSIMを3枚持っていたりするので、そういう方には厳密に1アカウントとは出来ない欠点もあります。
あと、SMSを送信するのに外部の有料サービス利用が必要だったり

2.Fingerprintで認証する
https://www.saitolab.org/fp_site/
アクセスしている端末の解像度やブラウザやプラグイン等いろんな情報を収集し、それらが他人の端末と完全に一致するケースはほぼないだろうという事から使われる技術で、一部では実サービス上で利用されていたりします。
私も一時期導入を検討しましたが、私の技術力では欲しいレベルの精度での個の特定が出来ず、断念しました。
PCならかなり精度高く特定出来るのですが、iPhoneとか、多く流通しててその多くがデフォルト設定で使われているような端末があると、なかなか難しいところがありました。

3.登録時には諦めて、遊ぶ時に多アカウント使っていないかチェックする
Cookie等簡単な方法でいいので、ゲーム中に毎回多アカウントでログインしていないか確認し、多アカウントを使っていたらゲームさせないorアカウント凍結するなど。
回避方法としては、毎回ゲームログイン前にCookieを削除するなどする事で可能ですが、毎回毎回そんな手間がかかると諦めるのでは。

完全に特定するのは、なかなかむずかしいのでは。

投稿2017/02/13 02:41

編集2017/02/13 02:42
kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/13 06:35

ご回答ありがとうございました。 やはり完全に特定するのは難しいのですね。 ご回答にありましたFingerprintに関しては、非常に勉強になりました。 当初はプログラムによる識別と多重判定の自動化を目指しておりましたが 2、3の組み合わせで、人間による多重判定の手助けになる管理ツールを 作る方向で一度検討してみたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問