将部分DOM或SVG结构从服务器传输到客户端浏览器

时间:2011-12-12 11:35:42

标签: security html5 dom svg d3.js

我最近使用d3.js和svg开始了一个高度互动的html5应用程序。

虽然目前完全在浏览器中运行,但我已经注意将用于生成 svg结构的代码与操纵它们分开。

为了保护至少svg生成逻辑(到目前为止更大的努力),我正在使用node.js的服务器端生成的想法,以某种方式“剪切”生成的DOM或SVG结构,传递此到浏览器并有效地“嫁接”到(分别)本地DOM 准备好的html div。目标:

  1. 没有原始的“svg-generating”javascript会被转移
  2. 使用d3的select()或selectAll()调用最终可以查找任何结果结构
  3. 我有没有 node.js,只有模糊的html5 DOM知识。我的问题:

    • 将原始DOM或SVG结构的一部分传输到浏览器是否可行,以及如何?
    • 如果两种可能,你会推荐
    • 是否存在我应该注意的特定安全问题

    我意识到这是一个潜在的复杂问题,欢迎部分答案和相关线索(书籍,tuturials,示例)。

    虽然在发布此问题之前我进行了密集搜索,但我错过了 Accessing a DOM object defined in an external SVG file。看起来很有希望,但考虑到我需要转移的结构的大小和复杂性,我欢迎进一步评论。

    由于

1 个答案:

答案 0 :(得分:2)

  1. 将原始DOM或SVG结构的一部分传输到浏览器是否可行,以及如何?

    是的,有可能。只需将SVG的任何特定子节点/树转移为自己的XML文档。

  2. 如果两者都可能,您会推荐

    HTTP通信是所有字符串,因此您无法通过网络传递“DOM”对象。您可以传递的只是序列化版本(原始SVG XML)。

  3. 是否存在我应该注意的特定安全问题

    没有我能想到的。这似乎是标准的服务器端内容生成。你在想什么类型的问题?您不打算在服务器上执行HTTP请求中发送的原始代码,是吗?