1

人が 10 秒以内に答える必要があるクイズ ボットがあります。ボット フレームワークを使用して、ボットがメッセージを送信したときにタイムスタンプを測定し、ユーザーの回答がダイアログ内で受信されたときに別のタイムスタンプを記録します。ただし、ネットワーク遅延が考慮されていないため、このアプローチには欠陥があると感じています。私が間違っていなければ、メッセージ送信中のタイムスタンプはサーバーのタイムスタンプであり、メッセージ受信中のタイムスタンプはサーバーがメッセージを受信した時間でもあります。合計時間差 = サーバーのタイムスタンプ + 送信遅延 + ユーザー遅延 + 受信遅延 - 受信時のサーバーのタイムスタンプが式です。

ユーザーに 10 秒の制約を適用する正しい方法は何ですか?

4

2 に答える 2

1

そうしないと、クイズが簡単にハッキングされてしまうため、アプローチを維持することをお勧めします。
説明しましょう。何らかの方法でクライアント側からタイムスタンプを送信すると、ユーザーはそのタイムスタンプを簡単に編集して (最新のブラウザー内でインスペクター ツールを使用しても)、偽のタイムスタンプを送信できます。だから、彼は簡単に勝つことができるでしょう。

また、クライアント側からタイムスタンプを送信し、それをサーバー側のメッセージ受信のタイムスタンプと比較することで、両方のアプローチを組み合わせることができます。そして、差が十分に大きくない場合 (ハッキングされていないと仮定して)、クライアント側のタイムスタンプを使用します。それ以外の場合は、サーバー側のタイムスタンプを使用してユーザーを罰します:)

于 2017-01-10T13:28:21.173 に答える