0

我正在设计一个客户端-服务器系统,我需要了解如何在客户端发送操作和请求时检查客户端的数据是否正确。在这种特殊情况下,我有一个浏览器和一个 javascript 客户端,它从 longpolling 获取数据并更新一系列绑定到 html 元素的对象,几乎是 MVVM。

步骤是这样的:

  • 开始投票
  • 获取完整数据
  • 将 json 转换为 javascript 对象
  • 更新与数据相关的每个 html 对象

用户可以随时触发事件并使用最新更新的本地模型。

  • 用户触发事件
  • 发送事件 + 完整数据(所有转换为 json 的对象)

问题是:它非常粗糙,可能很慢,对客户端和服务器来说很重。

我的目标是将数据传输减少到最低限度,并避免客户端损坏/攻击。我该怎么办?

4

2 回答 2

0

My objectives are to reduce the data transfer to a minimum

Some things to try:

  • Reduce the number or frequency of client events that send an update
  • Send only what data has changed
  • Compress the data you send
  • bundle several events into a single request

and avoid client side corruption/attacks.

  • To avoid attacks, you need to validate all input on the server. You should write your validator without knowledge of the client. You can assume nothing about what combination of data you can get--instead you should assume that someone is hand-crafting requests with a text editor and sending them with CURL.
  • To avoid corruption (really a "lost update"), use conditional PUTs or POSTs with the if-none-match or if-unmodified-since headers.
于 2012-04-30T04:37:36.013 回答
0

我的目标是将数据传输减少到最低限度

只发送已更改的数据,但 AJAX 中的最高成本是请求,因此除非您发送大量数据,否则可能不会产生任何明显的差异。

并避免客户端损坏/攻击

不可能的。您的代码在浏览器中运行,用户可以为所欲为。

于 2012-04-30T04:18:28.783 回答