我有类似邮件合并的功能,它需要一个模板、一些业务对象,然后生成 html,然后将其制成 PDF。
我正在使用RazorEngine将模板 + 模型转换为 html 位。
如果我让用户指定模板,我会承担什么风险?是否有可能减轻任何风险?
例如,用户可以执行任意代码吗?(删除文件、更改数据库等?)有什么方法可以检测到这种事情吗?(我知道这通常是不可能的,但剃刀模板中的代码应该是模型属性获取,或者可能是基于模型属性值的语句)。
我基本上信任这里的用户(这是一个小型私人项目),但随着模板引擎的发展,这个应用程序似乎过于强大。