0

シナリオ

node.js/socket.io (express.js、mongodb、passport.js、socket.io) Web ゲームを構築しています。ユーザーは、プレイする前にログインする必要があります。

socket.io を使用して mongodb にランダムな名前のゲスト アカウントを作成し、それを使用してプレイヤーをゲームにログインさせる大きな「TRY NOW」ボタンをフロント ページに配置することを考えています。このゲスト アカウントは、ユーザーが登録しない限り、たとえば 48 時間以内に破棄されます。

これを悪用する 1 つの方法は、「TRY NOW」ボタンを繰り返しクリックしてデータベースをゲスト アカウントであふれさせるスクリプトを作成することです。

質問

本格的な登録なしでこれを回避する方法はありますか? 「TRY NOW」の横にキャプチャを配置することもできますが、本当に必要でない限り使用したくありません。

4

1 に答える 1

1

CAPTCHA を使用せずにこれを行う方法はいくつかありますが、完全な解決策ではありません。

  1. 時間の経過とともに持続するそのクライアントのセッション ID を持つ Cookie を設定できます。ユーザーがセッションを持っている場合、このセッション ID は [TRY NOW] ボタンをブロックする可能性があります。これは、Cookie が保存されない別のブラウザーによってバイパスされる可能性があります。または、ユーザーが Cookie を削除した場合
  2. ユーザーの IP アドレスをスキャンしてフラッド保護を実装する場合はお勧めしません (たとえば、この IP アドレスが 10 分以内にそのボタンを押す可能性がある場合、それ以外の場合はブロックされます)。しかし、これは共有および NAT の下では非常に不快です。これをしないことを検討してください。
  3. それ以外の場合は、新しく形成されたユーザーのアクティビティをスキャンすることを検討できます。最初の数分間にアクティビティがまったくない場合、アカウントは破棄され、再度作成する必要があります。

それらのほとんどは、機能する可能性のあるアイデアです。

于 2013-01-13T13:25:23.743 に答える