我目前正在评估应用程序脚本语言候选者在.Net应用程序中托管并且遇到过Boo。但是,我很难从文档中看到,无论如何都会阻止用户导入他们想要的任何.Net命名空间,因此能够从脚本中做出比我希望的更多危险的事情。
有没有办法阻止这种情况?
我现在可以提供一个导入宏来覆盖import关键字吗?
从文档中可以看出,但只搜索宏"When an unknown syntactic structure is encountered"。也许导入已经是语言中的一个宏,因为他们已经将宏用于其他事情,例如print,但它并没有说它。
答案 0 :(得分:1)
如果项目已经引用了包含这些命名空间的dll,防止导入不会阻止任何人使用完整路径访问命名空间,并且System.Core有很多“危险”的东西。
脚本具有内在的风险。如果像大多数脚本环境一样,你可以保留对shell的某种形式的访问权限(File.Delete(),Process.Start()...),那么你几乎可以免受损害,无意或者其他。
然而,值得问Boo mailing list,我相信有人会有一个聪明的想法...