gpt4 book ai didi

c# - 让用户指定 RazorEngine 模板有多危险?

转载 作者:太空狗 更新时间:2023-10-29 19:56:13 25 4
gpt4 key购买 nike

我有类似邮件合并的功能,它采用模板、一些业务对象,并生成 html,然后将其制作成 PDF。

我正在使用 RazorEngine将模板+模型做成 html 位。

如果我让用户指定模板,我要冒什么风险?是否可以降低任何风险?

例如,用户可以执行任意代码吗? (删除文件、更改数据库等?)有什么方法可以检测到这类事情吗? (我知道这通常是不可能的,但是 Razor 模板中的代码位应该是模型属性获取,或者可能是基于模型属性值的语句)。

我基本上信任这里的用户(这是一个小型私有(private)项目),但是随着模板引擎的发展,这个引擎对于这个应用程序来说似乎过于强大了。

最佳答案

在版本 3 中,我引入了一个 IsolatedTemplateService,它支持在另一个 AppDomain 中解析/编译模板。您将能够控制将在其中编译模板的应用程序域的创建,这意味着您可以通过将安全策略应用于子应用程序域本身来引入您想要的任何安全要求。

在未来的推送中,我希望引入一种通用的方法来向管道添加扩展,这样您就可以进行代码生成检查等操作。我想这将启用在编译生成的代码之前对其进行类型检查的场景。

几天前,我将 RazorEngine (v3) 的早期版本推送到了 GitHub 上。请随时查看。 https://github.com/Antaris/RazorEngine

关于c# - 让用户指定 RazorEngine 模板有多危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com