2

AJAX + PHP を使用して一致するクイズ ゲームを設計するプロジェクトに精力的に取り組んだ後、私の会社が製品の配布に使用している学習スイートでは、バックエンドでサーバー側スクリプトを実行して回答を安全に確認できないことがわかりました。これはすべて、不幸な階層的独裁によるものです。

簡単に言うと、クライアント側で何らかの方法で回答を確認する必要があります (または、何かトリッキーなことを理解する必要があります)。幸いなことに、jQuery をローカル フォルダー構造にアップロードできたので、それを使用できます。

クライアント側でクライアントの回答を確認する最も安全な方法は何ですか? または、より安全に回答を確認するために、XML ファイルなどの外部ファイルを参照する方法はありますか?

4

2 に答える 2

5

OK、もしあなたが本当にJSですべてをやりたいと思っていて、それをする必要があるなら、これが私がそれをする方法です:

  • 正しい答えを平文として保存するのではなく、ある種のハッシュを使用してください。
  • 回答オブジェクトとハッシュ関数をクロージャに隠して、ブラウザのjsコンソールから呼び出せないようにします。
  • 単純なタイムアウトなど、チェックプロセスに非同期部分を追加します。プログラムで回答をチェックし、結果オブジェクトを探すことで、フォームをブルートフォースすることに対してそのスロットルコードを使用します。
  • コードを難読化します。隠すことによるセキュリティは決して良い概念ではありませんが、最終的なハッカーがコードから関連する部分を直接コピーするのを防ぐことができます。

ただし、結果をサーバーに送信して保存する方法はまだ不明です。その部分が簡単に偽造される可能性がある場合、あなたは失われます。

于 2012-08-02T16:34:36.623 に答える
2

私が考えることができる唯一のことは、コードを難読化することです。このプロセスは、それを縮小することでも知られています。これを行うと、コードが読みにくくなり、ハッキングがわずかに難しくなります。ハッキングできないわけではありませんが、カンニングをしたい人にとっては少し難しくなります。いくつかのオプションがあります:

これで主なものはすべてカバーできると思いますが、私が言及していないものを他に知っている場合は、以下にコメントを残してください.

この回答に関連する質問: Is there a good JavaScript minifier?

于 2012-08-02T16:31:05.363 に答える