【发布时间】:2019-02-18 22:38:47
【问题描述】:
目前我正在为一种编程语言 (pl) 创建一个游乐场。 在 Playground 中输入的代码在服务器上远程执行。
pl 在 Java VM 中运行,并在 docker 容器中执行。 由于您可以读取和写入 pl 中的文件,因此我需要从执行代码的 Java 应用程序中删除这些权限。
我正在执行这样的 Java 应用程序:
java -cp path/to/app.jar "app.package.main" -x "place code here"
如何删除 Java 应用程序的读写权限?
【问题讨论】:
-
我们所说的读写权限是什么?
-
读写任何文件。 java 应用程序应该不能读取或写入任何文件。
-
由于 Java 应用程序只能做程序员打算/编码的事情,所以不要提供可以读取文件或写入文件的代码,或者只为某些角色提供代码
-
我明白你的意思,但是编程语言的 jar 文件是固定的。不是我自己开发的,pl的作者做的。
-
如果您运行的是不受信任的代码,那么您认为代码是用什么语言编写的并不重要。只要确保执行代码的用户无法执行任何操作你不希望程序能够做到。这是操作系统/文件系统权限问题,而不是 java 问题。 (提示:写文件并不是一个程序唯一可能做的潜在危险的事情——执行其他程序、读取它不应该看到的信息、发送电子邮件等等......也可能是问题,例如)
标签: java permissions