我想让客户可以编辑 marko 模板。我知道用户可以添加脚本和 XSS 问题。问题是关于server side
。
如果我从 nodejs 运行 marko 模板,并且模板来自一位用户。模板是否有可能评估服务器上的恶意代码?
换句话说:我怎样才能阻止用户做这样的事情:
<if test="require('readFileSync').deleteAllMyFile...">
Hi
</if>
我想让客户可以编辑 marko 模板。我知道用户可以添加脚本和 XSS 问题。问题是关于server side
。
如果我从 nodejs 运行 marko 模板,并且模板来自一位用户。模板是否有可能评估服务器上的恶意代码?
换句话说:我怎样才能阻止用户做这样的事情:
<if test="require('readFileSync').deleteAllMyFile...">
Hi
</if>
Marko 在设计上允许在模板中使用任意 JavaScript 代码(出于性能原因)。目前,这使得已编译的 Marko 模板不适合在模板不受信任的情况下使用。然而,由于这种情况已经出现过几次,我们正在探索通过将编译模板加载到沙箱中来使它们安全的选项。您可以在以下 Github 问题中关注该讨论:https ://github.com/marko-js/marko/issues/192