Import IronPython在使用后禁用导入
在我使用完导入后,有没有办法禁用它?我使用IronPython作为脚本引擎,我不希望用户能够导入任何内容。这可以通过使用setfenv在LuaInterface完成:Import IronPython在使用后禁用导入,import,ironpython,Import,Ironpython,在我使用完导入后,有没有办法禁用它?我使用IronPython作为脚本引擎,我不希望用户能够导入任何内容。这可以通过使用setfenv在LuaInterface完成: luanet.load_assembly("System.Windows.Forms") luanet.load_assembly("System.Drawing") Form=luanet.import_type("System.Windows.Forms.Form") -- Only allow the use of th
luanet.load_assembly("System.Windows.Forms")
luanet.load_assembly("System.Drawing")
Form=luanet.import_type("System.Windows.Forms.Form")
-- Only allow the use of the form class
local env = { Form = _G.Form }
setfenv(1, env)
或者在解析脚本文件之前将导入函数设置为nil:
luanet.load_assembly = nil
luanet.import_type = nil
这在IronPython中是可能的吗?一个选项是预先检查您正在执行的脚本,并禁止任何包含import语句或来自。。。导入语句
foreach(line in script) {
if(line.TrimeStart().StartsWith("import") || line.TrimeStart().StartsWith("from") {
throw ...;
}
}
它不是万无一失的——导入仍然是一个问题,但它将涵盖绝大多数情况。您可以创建导入函数的挂钩,并以任何方式处理用户导入 在这种情况下,您可以为钩子获得的任何导入返回null 这里解释了如何执行此操作: