【问题标题】:Sending functions rather than data发送函数而不是数据
【发布时间】:2017-07-27 00:31:41
【问题描述】:

如今,我们总是认为“将您的数据发送到服务器,它会为您计算数据,然后将响应发回给您”。

但是想象一下别的事情:我希望我的客户自己计算数据。

问题是:是否有类似于通用协议的东西通过 http 发送操作而不是数据?这样服务器就可以将操作发送给客户端,无论它使用什么系统。如果不存在,创建这种系统会面临哪些技术难题?

我说的是“静态”动作,例如数学函数。

【问题讨论】:

  • 没有这样的协议,试着设计一个,你就会明白为什么不可能了:)
  • 这不是责备,只是为了了解可能存在的困难
  • 第一个困难 - 独立操作是无用的,它们需要数据,这可能是巨大的数据集(在服务器上处理它然后发送到客户端更快),第二个 - 安全性,你实际上不需要想向客户发送一些动作+数据
  • 第一 - 我不明白,如果我有一个本地数据库,例如......第二 - 什么安全?例如,如果动作是对两个数字求和
  • 其实我是在说技术难点

标签: function http network-programming


【解决方案1】:

不幸的是,您很快就会遇到问题,因为从技术上讲,通用语言是不可能的。系统将有不同的架构、不同的可用语言和不同的存储方式。我相信您的意图(如果我错了,请纠正我)是一个“广泛使用”的协议。无论哪种方式,您都必须根据您的个人用例进行深入研究。

举一个普遍的例子,您可以保留一组具有服务器端功能的 JavaScript 文件,并在某些事件期间通过loading a javascript file 将 Web 客户端引用到他们需要运行它的客户端。传递文件的位置和函数名,使用上面的链接加载它,然后call the JavaScript function by name 运行它。我可以看到这是一个公认的有点迂回的解决方案。由于它的built in JavaScript engine,这也可能在Java中工作,尽管我还没有测试过。

除此之外,我不知道有什么特别普遍的事情。大多数应用程序非常严格地限制它们接受的指令,以防止安全漏洞(想象一下可以在客户端机器上免费运行的SQL Injection)。事实上,JavaScript limits itself quite severely,也许最值得注意的是在本地文件读取方面。

希望这对您的想法有所帮助。如果您对我所说的内容有任何疑问/问题,请在评论中告诉我。

【讨论】:

  • 感谢上帝,有人明白我的意思。我也认为这是最简单的解决方案,我会对其进行测试并反馈性能。非常感谢您关于 JS 限制的非常有趣的文章(以及所有其他链接),实际上它可以引发深层问题(尤其是关于本地文件......)!但是我并不真正理解 SQL 注入问题,因为数据库将存储在服务器端,因此服务器可以检查来自客户端的查询是否有效(如果有查询)。
  • @fazega:很高兴它有帮助!对于 Sql 的混淆,我深表歉意,这更像是一个比喻而不是直接比较。基本上,当您允许将字符串转换为代码、客户端或服务器端时,您就会遇到经典的注入问题。防黑客注入分析器是安全编码的圣杯,因此您将不得不限制可接受的查询/命令。这一切都会重新建立有效的限制。
  • 我明白了。确实,由于类似注入的意外问题,必须非常小心地进行字符串解析/反解析部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2019-05-08
  • 1970-01-01
  • 2019-07-23
  • 1970-01-01
相关资源
最近更新 更多