gpt4 book ai didi

java - 空白的 Java 安全策略文件是否是最严格的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:18 25 4
gpt4 key购买 nike

我正在创建一个允许用户执行上传的 Java 文件的应用程序。我试图限制他们可以使用安全管理器执行的操作。一个空白的政策文件是否是最严格的,不允许他们做尽可能多的事情?这会限制他们做任何我不应该限制他们做的基本事情吗?

最佳答案

是的,不授予任何权限的安全策略是您可以使用标准 Java 安全管理器定义的最严格的策略,并且会阻止在该 JVM 中运行的任何代码执行任何需要安全的操作允许。 Java 核心 API 通常会在允许在安全管理器下运行的代码执行任何可能有害的操作之前检查各种安全权限,因此从理论上讲,在未授予权限的情况下运行不受信任的代码是安全的。

有一些异常(exception):例如,允许从系统类路径加载的代码调用 System.exit(),这会停止您的应用程序,并且在没有权限的情况下运行的代码仍然可以创建任意数量的新线程,这可能会锁定上系统。如果存在这些问题,您需要考虑编写自定义安全管理器。

在您的情况下,如果您在同一个 JVM 中运行您的应用程序代码和用户提供的代码,您需要授予您的应用程序代码执行它需要执行的操作的权限,同时不授予不受信任的代码任何权限,因此您需要在策略文件中添加类似以下内容:

grant codeBase "file:path/to/trusted/application/jars" {
permission java.security.AllPermission;
};

请注意,如果您在命令行上指定策略文件,则需要使用双等号(例如 -Djava.security.policy**==**policy.file ),否则您的策略将扩展默认的 Java 安全策略,该策略为所有代码授予最小权限集。

关于java - 空白的 Java 安全策略文件是否是最严格的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com