如何清理用户上传的工作流程?

时间:2011-08-08 21:55:27

标签: xpath workflow-foundation workflow-foundation-4 multi-tenant

我有一个多租户应用程序,可以根据需要运行任意工作流程。

我计划使用工作流设计器来创建这些工作流,但即使我限制工具箱中的活动,这也不能阻止恶意用户编辑自己的XAML文件,做一些我不想做的活动(特别呼吁.NET框架)

对于给定的工作流程,如何验证所使用的唯一操作是我赞同的? XPath查询是唯一的方法,还是WF中有一个功能可以验证这个?

如果您需要对我正在寻找的内容进行直观介绍here是一个示例项目,并video引用它。

2 个答案:

答案 0 :(得分:1)

您所能做的就是将XAML作为XML加载并检查其中的内容。并确保检查输入的任何VB表达式,因为用户也可以在其中放置有趣的东西。

答案 1 :(得分:1)

我只是在sandboxed AppDomain中加载工作流程。您可以使用SecurityManager的GetStandardSandbox静态方法相对容易(并且安全地)设置它。

当然,我还没有完成这个,但我肯定会考虑将其中的一部分添加到我当前的WF代码中(它确实使用AppDomains来隔离我的工作流程的执行情况)应用程序)。