scala运行时的安全性
我是
Robocode发动机的开发人员.我们想制作Robocode
多语言和Scala似乎是很好的搭配.我们有Scala插件 prototype here. 问题: 在Robocode中托管Scala运行时有两种方式: 1)将其与沙箱内的机器人一起加载.对我们来说很安全, 2)使用Scala运行时间作为受信任的代码,在框外,安全性 3)之间的某些东西,一些类的运行时和一些.哪些类/包必须对机器人可见,哪些只是私有实现? (这似乎是未来的解决方案) 问题: 我正在寻找具体的答案,这将导致安全的解决方案.随机的想法欢迎,但没有授予. scala email group正在进行讨论.没有具体的答案. 解决方法
我认为#1是你最好的选择,即使是一个移动的目标.如邮件列表所示,结构类型使用反射.我不认为结构类型在标准库中是常见的,但我不认为有人跟踪它们在哪里.
还有一些可能性,在幕后还有其他功能使用反射.例如,在2.8分支中有一段时间,一些数组功能正在使用反射.我认为这是在基准测试之后发生了变化的,但是有一个人说“阿哈!我会用反思来解决这个问题”的问题总是有可能的. Scala标准库充满单身人士.大多数是不可变的,但是我知道actors库中的Scheduler对象可能被滥用于通信,因为它本质上是实际调度程序的代理,因此您可以将自己的自定义调度程序插入其中. 在这个时候我不认为Scala需要使用一个自定义的类加载器,它的所有类都是在编译时而不是运行时生成的,但是这又可能是一个移动目标. Scala生成了很多类文件,并且总是在使用它们时,在运行时生成其中的一些文件,而不是在编译时生成. 所以简而言之,我不认为这是可能的(在合理的限制条件下)来枚举和隔离可以(应该)被信任的Scala的片段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |