Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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安全管理器以什么顺序评估和应用权限?_Java_Security - Fatal编程技术网

Java安全管理器以什么顺序评估和应用权限?

Java安全管理器以什么顺序评估和应用权限?,java,security,Java,Security,我试图找出Java安全管理器评估grant{…}子句的顺序和程度。 比如说,如果我想授权一些下载的代码从用户主目录的子目录(…/X/Y/Z)中读取并写入,而所有其他代码可以读取(但不能写入)高达2级(即用户主目录的子目录../X及以下) 我怎样才能具体说明呢?下面这样的顺序正确吗 ... grant codebase http://foo.bar.com/test.jar { permission java.io.FilePermission "${user.dir}/X/Y/Z/*",

我试图找出Java安全管理器评估grant{…}子句的顺序和程度。 比如说,如果我想授权一些下载的代码从用户主目录的子目录
(…/X/Y/Z
)中读取并写入,而所有其他代码可以读取(但不能写入)高达2级(即用户主目录的子目录
../X
及以下)

我怎样才能具体说明呢?下面这样的顺序正确吗

... 
grant codebase http://foo.bar.com/test.jar {
   permission java.io.FilePermission "${user.dir}/X/Y/Z/*", "read,write"; }; 
...
grant {
   permission java.io.FilePermission "${user.dir}/X/-", "read"; };
...
i、 e.作为
test.jar
文件的一部分下载的代码的安全评估是否会在第一个grant子句之后停止(因此不会授予对目录
../X/Y
的读取权限)


通过以上设置,我可以确定当前应用程序的代码将获得更高的访问权限,即进入用户的主目录本身(甚至更高的…)

类将获得整个适用权限集。秩序在这里没有真正的意义

通过提供以下JVM参数,可以打印出应用(有时是扩展)策略的顺序:

-Djava.security.manager-Djava.security.debug=all

我会发布一个示例输出,但结果表明控制台输出非常非常长

  • 为了直接回答您关于评估顺序的问题,我假设它是实现定义的,因为我从未找到关于系统细节的权威文档

  • 至于保证无法访问用户主目录,不可能不看到加载的所有策略文件(包括与JRE安装捆绑在一起的一个,以及user.home中的一个,如果它们存在的话)

祝你好运