我希望允许用户创建模板来显示其数据,并且这些模板将使用JavaScript进行呈现。我想知道是否可以安全地做到这一点?我只需要简单的东西,例如循环和if-else语句,当然还需要访问和打印给定对象中变量的值。
是否有任何模板库允许执行此任务,或者使用简单的方法来完成此任务?
您无法在浏览器中运行安全的程序。
您可以使用与您的首页略有不同的src在IFRAME中沙漏可能不安全的内容。例如:
www.example.com
上sandbox.example.com
,www.example.com:8080
,...]的位置>IFRAME将无法访问父页面资源。这不会阻止XSS,但是无论如何,这是另一个您必须关心的问题。
[如果您使用的是模板引擎,请看一下PURE,它很好地分隔了HTML和JS。
然后,您可以选择让人们仅构建模板的HTML,而将JS代码留在您的身边。并在必要时构建清理功能以确保HTML不包含JS。
以下内容正在考虑可能的Node.js服务器安全选项(不执行任意代码/无限循环)。浏览器安全(XSS)很难/不可能。