0

私はクライアント サーバー システムを設計しています。クライアントが操作や要求を送信するときに、クライアントのデータが正しいかどうかを確認する方法を理解する必要があります。この特定のケースでは、ブラウザーと、ロングポーリングからデータを取得し、html 要素 (ほぼ MVVM) にバインドされた一連のオブジェクトを更新する JavaScript クライアントを使用しています。

手順は次のようなものです。

  • 投票を開始する
  • 完全なデータを取得する
  • json を JavaScript オブジェクトに変換する
  • データに関連付けられたすべての html オブジェクトを更新する

ユーザーはいつでもイベントを発生させることができ、最新の更新されたローカル モデルで作業できます。

  • ユーザーがイベントを発生させる
  • イベント + 完全なデータ (json に変換されたすべてのオブジェクト) が送信されます

問題は次のとおりです。非常に粗く、おそらく遅く、クライアントとサーバーに負担がかかります。

私の目的は、データ転送を最小限に抑え、クライアント側の破損/攻撃を回避することです。これについてどうすればいいですか?

4

2 に答える 2

0

私の目標は、データ転送を最小限に抑えることです

変更されたデータのみを送信しますが、AJAX で最もコストがかかるのは要求であるため、大量のデータを送信しない限り、顕著な違いは生じない可能性があります。

クライアント側の破損/攻撃を回避する

不可能。コードはブラウザで実行され、ユーザーは好きなことを何でもできます。

于 2012-04-30T04:18:28.783 に答える
0

私の目標は、データ転送を最小限に抑えることです

試してみるいくつかのこと:

  • 更新を送信するクライアント イベントの数または頻度を減らす
  • 変更されたデータのみを送信する
  • 送信するデータを圧縮する
  • 複数のイベントを 1 つのリクエストにまとめる

クライアント側の破損/攻撃を回避します。

  • 攻撃を回避するには、サーバー上のすべての入力を検証する必要があります。クライアントの知識がなくても、バリデータを作成する必要があります。取得できるデータの組み合わせについては何も想定できません。代わりに、誰かがテキスト エディタでリクエストを手作りし、CURL で送信していると想定する必要があります。
  • 破損 (実際には「失われた更新」) を回避するには、またはヘッダーで条件付き PUT または POSTを使用します。if-none-matchif-unmodified-since
于 2012-04-30T04:37:36.013 に答える