我目前正在评估在 .Net 应用程序中托管的应用程序脚本语言候选者,并且遇到了 Boo。但是,我很难从文档中看到是否会阻止用户导入他们想要的任何 .Net 命名空间,因此有能力做比我希望从脚本中更危险的事情。
有没有办法防止这种情况?
我现在可以提供一个覆盖 import 关键字的导入宏吗?
从文档中听起来像宏只被搜索“当遇到未知的句法结构时”。也许 import 已经是语言中的一个宏,因为他们已经将宏用于其他事情,例如打印,但它并没有说它是。
我目前正在评估在 .Net 应用程序中托管的应用程序脚本语言候选者,并且遇到了 Boo。但是,我很难从文档中看到是否会阻止用户导入他们想要的任何 .Net 命名空间,因此有能力做比我希望从脚本中更危险的事情。
有没有办法防止这种情况?
我现在可以提供一个覆盖 import 关键字的导入宏吗?
从文档中听起来像宏只被搜索“当遇到未知的句法结构时”。也许 import 已经是语言中的一个宏,因为他们已经将宏用于其他事情,例如打印,但它并没有说它是。
如果项目已经引用了包含这些命名空间的 dll,并且 System.Core 有很多“危险”的东西,那么阻止导入不会阻止任何人使用完整路径访问命名空间。
脚本本身就存在风险。如果像大多数脚本环境一样,您保留某种形式的 shell 访问权限(File.Delete()、Process.Start()...),那么您很容易受到损坏、无意或其他方式的损坏。
但是,值得在Boo 邮件列表中询问,我相信有人会有一个聪明的主意......