0

我有一個CLI應用程序,它能夠用某些參數編輯XML文件。運行運行時代碼的安全方式(XML文件編輯)C#

但是我現在需要一個更強大的方法來做到這一點。

我想讓用戶使用.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中,但這可能會引入安全問題。

編輯: 一個要求是它必須工作在單聲道。

回答

0

我選擇了IronJS.NET運行庫,並且討論了一個JavaScript XML庫here(XML爲<腳本> W3C DOM解析器)。

我也在尋找其他的Javascript .NET運行時,比如:Javascript .NET,Jurassic和Jint(因爲性能更好而選擇了IronJS)。另外還測試了一些.NET Lua庫,即Kopilua,但選擇了javascript解決方案,因爲它看起來更完整,更有文​​檔記錄並且更易於使用。