14

我正在创建一项服务,我希望允许最终用户编辑网页的 HTML 模板,允许访问特定的“变量”以包含在模板中。

我知道液体就是为此目的而设计的,安全(至少相对而言),并且在大量生产中使用。但是,与 Mustache 之类的语言相比,我发现该语言对于最终用户来说相当复杂。

Mustache 听起来不错,但我担心安全性……它曾经被用于最终用户模板吗?

基本上,我正在寻找一个模板引擎,我可以将其与 Rails 一起用于最终用户,即:

  1. 安全 - 不允许用户执行代码……至少不允许在服务器上执行。用户将被允许插入客户端 javascript。
  2. 功能强大 - 允许最终用户使用提供的“变量”并在 #1 的上下文中创建几乎任何他们可以想象的网页
  3. 简单 - 语法清晰且易于最终用户应用
  4. 如果支持以 javascript 和其他语言呈现模板语法,则可以加分。

液体满足 1 和 2,但不满足 3-4。小胡子满足 2-4,但我不确定 #1,这是不可协商的。

非常感谢任何见解、经验或评论。

4

1 回答 1

4

Mustache 非常适合插值,如果您将它用于 Javascript 评估,我无法想象它会让您暴露于服务器端漏洞。这是最简单、最强大的选择。我不知道非程序员会理解它,但我确信它比 Liquid 更简单。

另一种选择是使用现有的更简单的用户标记集(如 BBcode)或富文本编辑库(如 TinyMCE)。这些功能大大减少,但对于普通人来说更容易使用。

于 2011-02-26T23:50:05.497 回答