0

jQuery Ajaxを使用してphpスクリプトと通信すると、が返されますJSON。次に、返さJSONれた配列オブジェクトがJavascript変数に割り当てられますvar myJSON = ajaxReturn;

通常、戻りJSON値はランタイムでのみレンダリングされるため、ページソースまたはJavascriptファイルには表示されません。

しかし、次のようなツールを開いてFirebug、コンソールでその変数を呼び出すと、次のようになりますalert(myJSON);。結果が表示されます。これは秘密のデータなので、私はそれを望まない。

  • JSONJavascript側でを防止/保護するための最良の方法は何ですか?
4

4 に答える 4

2

クライアント側に送信されるものはすべて公開されます。これはフロント エンド開発の性質であり、変更することはできません。ユーザーがのぞき見ることにした場合、ユーザーから何かを隠すことは不可能です。

于 2013-01-28T09:15:53.667 に答える
1

アプリケーションの目的がクライアントで使用するために格納することである場合、JSONアクセスから保護する方法はありません。ただし、 を受け取った時点ですべての変更を行ってJSONから破棄することができます (保存しないでください)。ブラウザの開発者ツールの [ネットワーク] タブを使用するだけで、リクエストが傍受され、レスポンスが読み取られる可能性があることに注意してください。

于 2013-01-28T09:16:48.673 に答える
1

JSON データで何をしますか? ほとんどの場合、UI コントロールまたはその後の Web サービスへの呼び出しを行っています。したがって、JSON を保護する (つまり、暗号化する) 場合でも、クライアント側の復号化が必要になるため、JSON は依然として脆弱ですalert(decryptedJSON)

ブラウザでデータを解読できるようにする必要がある場合、JSON を保護する真の安全な方法はありません。

もちろん、HTTPS を使用してデータを暗号化するか、サーバー側で明示的にデータを暗号化し、クライアント側の JavaScript を使用して復号化することにより、ネットワーク上で進行中のデータを保護できます。しかし、それはブラウザでの閲覧を防ぐものではありません。

シナリオに適合する場合は、サーバー上でのみ暗号化および復号化することをお勧めします。したがって、特定の Web サービス呼び出しから暗号化された JSON データを取得し、そのデータを次の Web サービス呼び出しにフィードして、サーバー上で復号化することができます。そうすれば、クライアント側の JavaScript で暗号化を解除する必要がなくなり、データがより安全になります。しかし、目的が UI を設定することである場合、明らかにこれはニーズに適合しません。

于 2013-01-28T09:17:58.063 に答える
0

ゲームに参加できませんでした。サーバーからデータを送信したら、制限を超えました。firefox のようなブラウザは何でもできるので、ポイントは、クライアントでレンダリングされるすべてがPublicであるということです。

Firefox が firebug でデータを表示するのをブロックする何らかの方法があったとしても、誰でも簡単に、Web ブラウザーのふりをする独自の Web クライアントを作成して、データを使って好きなことを行うことができます。

本当にjson-dataを非表示にしたい場合は、ajax-jsonを使用して送信しないでください。異なる用語またはサーバー側プログラミングを使用します。

于 2013-01-28T09:23:36.480 に答える