加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala / Java Sandbox用于不受信任的代码

发布时间:2020-12-16 18:35:46 所属栏目:安全 来源:网络整理
导读:我想允许用户从浏览器客户端提交 Java / Scala源代码并在服务器上编译/执行它.但是,与此同时,我想限制用户在服务器上运行潜在的恶意代码. 例如,我想阻止文件系统访问以及提交的源代码的入站/出站网络访问.我还应该限制什么? 我应该明确禁止哪些Java / Scala
我想允许用户从浏览器客户端提交 Java / Scala源代码并在服务器上编译/执行它.但是,与此同时,我想限制用户在服务器上运行潜在的恶意代码.

例如,我想阻止文件系统访问以及提交的源代码的入站/出站网络访问.我还应该限制什么?

我应该明确禁止哪些Java / Scala库用于客户端?例如,这是我的不允许的API /库列表:

java.lang.System
java.lang.Runtime
java.io.*
java.nio.*
scala.io.*
java.net

如何正确沙箱不受信任的Java / Scala代码?

解决方法

可以通过提供 policy file来限制JVM运行时.遗憾的是,Java不是万无一失的,因此您最好限制在操作系统级别运行JVM的帐户.

如果允许最终用户在服务器上编译scala代码,则编译器可能会执行宏代码,这是一个额外的攻击面. Scalac可能不是为防御恶意宏而设计的. Scalac在JVM本身内运行,可以类似地沙箱化.

This question离你很近.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读