0

スコアを投稿する必要がある WCF サービスを呼び出すために ajax 呼び出しを使用しています。セキュリティを確保するための 3 つの基本的なオプションが表示されますが、どれが最適か (または組み合わせか)、またはそれらのいずれかを正確に実行する方法がわかりません。

1) コードを隠蔽/難読化します。これは可能ですか?これの接線は、私が人々に見せたくない特定の変数を隠しているだけです。「閉鎖」について何か読んだことがありますが、完全には理解していません。

2) ある種のハッシュの使用。上記のように、非表示にすることもできますか?

3) チェック & バランス。基本的に、スコアを追跡するために、さまざまなイベントで常にスコアをサーバーに送信します。定義された可能なパラメーターの範囲外のものを送信するユーザーを禁止します。(つまり、そのセッションで以前のスコアが「チェックイン」されていないときに、100,000 を超えるスコアを提出する。

2と3の組み合わせがベストだと思います。リンクやヒントをいただければ幸いです。

4

2 に答える 2

1

1) – 動作しません。JS コード ビューティファイアーが存在し、送信しているデータを誰でも見ることができます (たとえば、firebug ネットワーク タブなど)。

クロージャーは、コードを関数内にカプセル化する JS メカニズムであり、「外部」の関数がコードにアクセスできないようにします。ただし、大した違いはありません。コードを喜んでデバッグして、何が起こっているかを確認できるからです。

2) – 機能しません。クライアント側でハッシュを計算すると、a) アルゴリズムを確認し、b) ハッシュする前にデータを改ざんできます。

3)セキュリティを確保するための最良の選択肢かもしれません。

しかし、「完全に安全」にしたい場合は、JavaScript のようなオープンなクライアント サイド テクノロジを使用したくありません。もちろん、リバース エンジニアリングから完全に安全というわけではありませんが、Flash の方が優れた代替手段になるかもしれません。しかし、それは間違いなく基準をいくらか高く設定するでしょう.

于 2012-06-07T21:15:58.973 に答える
1

access_tokenアプリケーションが訪問者に公開されないように、常にサーバー側からスコアを投稿する必要があります。

スコアのドキュメントの引用:

ユーザーのスコアを作成または更新するpublish_actions 権限があれば、アプリ
で HTTP POST リクエストを発行することにより、スコアまたはユーザーを投稿できます。/USER_ID/scoresaccess_token

更新:
クライアントとサービス間の通信を保護しようとしているように見えるため、一般的に、サーバー側でユーザーのアクションに基づいてスコアを計算する方がはるかに安全です。そうすれば、偽のスコア送信を検出するよりも疑わしい動作に集中できます。アプリケーションを保護します。

于 2012-06-07T21:30:00.483 に答える