私の会社では定期的にインターネットでコンテストを開催しています。これらは単純な多肢選択式クイズで構成されており、クイズを最も速く完了した人が賞品を獲得します。
最近、私たちは不正行為者 (手動で完了するのが不可能な 1 秒未満のエントリの多く) に大きな問題を抱えています。時間はサーバー側で計算されるため、詐欺師が直接時間を操作することはできません。カンニングする唯一の実行可能な方法は、スクリプトを記述して自動的にクイズに記入して送信することです。
これに対処するために、次のことを既に実装しています。
- ユーザーを 1 つのエントリに制限します (IP を確認し、電子メール アドレスを要求することにより)
- プールからランダムに質問を取得します (残念ながら、各クイズは翻訳する必要があるため、翻訳リソースが限られているため、実際のプール サイズは非常に小さくなります)
- 質問と回答の順序をランダムにする
- クイズ要素のクラス名と ID をランダム化する
上記のすべての手法を使用しても、いまだに不正行為を行う人がいます。
最後の手段として、クイズのテキストを画像に置き換え、画像名をランダム化することを検討していますが、これはアクセシビリティの悪夢であり、画像比較を使用してだまされる可能性があります. したがって、可能であればこれを避けたいと考えています。
それで、ここに誰かがこれと戦う方法について何か考えがあるかどうか疑問に思っていましたか?