运行运行时代码的安全方式(XML文件编辑)C#

时间:2013-05-11 18:39:13

标签: c# .net xml-parsing command-line-interface desktop-application

我有一个CLI应用程序,可以使用一些参数编辑XML文件。

但是我现在需要一种更强大的方法来实现它。

我想让用户使用.txt中的自定义代码编辑XML文件,以便完全控制XML编辑。

例如:

@CODE File<file name for XML editing>
<code>
# Custom XML parser/editing code
for elem in tree.iter(tag='location'):
if elem.text == 'J':
    elem.text = 'January'
</code>

在.net C#中最安全的方法是什么?我的意思是用户只能编辑XML文件而不做任何会损害系统安全性的事情(比如删除文件)?

我正在考虑使用Javascript引擎(like this one)并从文件中运行javascript代码。我相信javascript会限制用户能够做的事情。我也想过在C#代码和Python中,但这些可能会引入安全问题。

修改 一个要求是它必须在单声道上工作。

1 个答案:

答案 0 :(得分:0)

我选择了一个带有javascript XML库的IronJS .NET运行时here(XML for&lt; script&gt; W3C DOM Parser)。

我还寻找其他javascript .NET运行时,例如:Javascript .NET,Jurassic和Jint(选择IronJS因为性能更好)。另外测试了一些.NET Lua库,即Kopilua,但选择了javascript解决方案,因为它看起来更完整,更有文​​档记录,更易于使用。