Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有任何可与PHP/Python/other集成的沙盒脚本引擎?_Java_Php_Python_Mono_Security - Fatal编程技术网

Java 是否有任何可与PHP/Python/other集成的沙盒脚本引擎?

Java 是否有任何可与PHP/Python/other集成的沙盒脚本引擎?,java,php,python,mono,security,Java,Php,Python,Mono,Security,我正在做一个思维实验,从其他问题来看,它毕竟不是那么新奇,但我想我还是会继续。我希望对用户提供的服务器端脚本进行沙箱处理,方法包括将其限制在虚拟文件系统中,设置根目录,并进一步将某些虚拟目录映射到特定的物理目录,这与实际的目录结构不一致。例如(使用PHP字符串解析),我的先入之见是“~$user/…”,但语义较低的“/$user/…”也可以;其中一个可能映射到“users/$user/$script\u name/data/…”。是的,在某些情况下,脚本可能会影响多个用户 因为这是一个思想实验,

我正在做一个思维实验,从其他问题来看,它毕竟不是那么新奇,但我想我还是会继续。我希望对用户提供的服务器端脚本进行沙箱处理,方法包括将其限制在虚拟文件系统中,设置根目录,并进一步将某些虚拟目录映射到特定的物理目录,这与实际的目录结构不一致。例如(使用PHP字符串解析),我的先入之见是“~$user/…”,但语义较低的“/$user/…”也可以;其中一个可能映射到“users/$user/$script\u name/data/…”。是的,在某些情况下,脚本可能会影响多个用户

因为这是一个思想实验,因此我不认为实现语言是个问题,我希望在我的本地主机上执行它,而宁愿使用PHP而不是安装其他的东西。(我也有Python2可用,可以让mod_wsgi使用它。如果必须的话,我会安装Python3。)理想情况下,我希望PEAR模块可以做到这一点——但从我所看到的情况来看,没有一个模块可以做到

我试图找到一个服务器模块,比如SSJS,来完成这个任务,但失败了。与我找到的答案最接近的是>和>。如果必须的话,我会转向Java,或者不太可能转向Mono,但我对这个想法不感兴趣。(我对Java非常生疏,几乎没有在服务器端使用过它。Mono对我来说是完全陌生的。)

由于它们是迄今为止最有希望的选择,我还想知道Java和Mono中的沙箱功能有多广泛。例如,他们可以做虚拟文件系统吗?将Java用户代码中的API输入引擎?是否为脚本提供了任何标准API,如果是,是否可以删除这些API

澄清 我真的不在乎这是怎么回事,但根据我链接的问题和答案,我实际上期望Java/Mono成为实现平台,而不是沙盒平台。我有点惊讶地看到答案中出现了这样的情况,但无论哪种方式都有效。

Java沙盒(以浏览器小程序实现的方式)根本不提供文件访问

一般来说,Java安全模型在大多数情况下只有安全管理器的“允许或不允许”决策


当然,您可以设计另一个API而不是普通的文件IO API(以及类似的API),然后以这种方式访问沙盒脚本(并禁止安全管理器以正常方式访问)。(我想其中一些已经在市场上的Java应用程序引擎中实现了,但我对此一无所知)。

我从未尝试过真正的沙盒Mono,但这可能会给您一个起点:

沙箱中的文件系统访问在该链接中涉及

受欢迎的选择似乎是和。这两款产品都附带最新版本的Mono()。和(OCaml-ish)也一样

可以轻松地将作为脚本编写服务嵌入。这是一本书

如果你偏爱PHP,你应该去看看


还有很多其他选择。一直以来都有新的基于.NET的脚本语言。我今天早些时候遇到过。

有一个spidermonkey扩展,用于和;不知道他们提供了多少限制。我知道我看到了PHP,不知道为什么我没有检查PECL。谢谢我想我必须破解它们才能让它们做我想做的事,但至少这是件好事。(你可能想回答这个问题,而不仅仅是评论。)这看起来很有希望!老实说,我真的不在乎哪种语言是沙盒语言,所以如果我的想法付诸实施,Mono可以为用户提供灵活性。@Jessubish-很高兴能提供帮助。不要害怕为你喜欢的答案投票。