问题标签 [javapolicy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
17187 浏览

java - Java 策略设置不适用于 FilePermission

我们的 Java 策略文件过去只是:

我正在努力使我们的应用程序更安全,而不仅仅是将一切授予所有人。我让它运行良好,除了我在授予文件权限时遇到问题。

我目前得到的错误是:

我尝试了很多东西的组合,例如:

我唯一能让它工作的是使用:

使用时出现错误“java.io.FileNotFoundException: \server.log(文件名、目录名或卷标语法不正确)”(即使文件确实存在):

只是想知道是否有人有其他想法可以尝试。我真的不想为了获得正确的文件权限而求助于授予所有权限,显然我错过了一些东西。

编辑:

我刚刚意识到这可能是日志文件中的一个线索:

也许我特别需要一些权限?现在在谷歌周围挖掘......

0 投票
0 回答
146 浏览

java - 在 JVM 中加载所需的策略实现(在 Java 安全属性文件中加载 policy.provider 的值)

根据文档,可以通过将“policy.provider”安全属性(在 Java 安全属性文件中)的值设置为所需 Policy 子类实现的完全限定名称来更改默认 Policy 实现。

我创建了自己的策略提供程序类的实现,并对 Java 安全属性文件进行了相应的更改。但是类没有被加载。经过一番研究后,我发现了这份白皮书,上面写着“在“jre”目录下创建一个“类”目录并将策略实现放在那里。现在引导类加载器将获取 MyPolicy 实现”。虽然我试过了,但还是失败了。

如何使我的策略实现可用于引导类加载器以成功加载?

0 投票
1 回答
997 浏览

eclipse-plugin - 在使用 jersey 的 eclipse 扩展插件中抑制 Applet Alert

我为 KNIME(基于 eclipse 的软件)编写了一个 REST 客户端插件。我用球衣作为图书馆。

一切正常。但是,如果我发送客户端请求,则会弹出一个小程序警报对话框,询问我是否要允许、禁止或停止小程序。这个对话框很烦人,特别是如果你想提交多个请求。我该如何摆脱它?

到目前为止,我发现的所有内容都是指防病毒软件在下载期间向 .jar 文件添加内容,调整 maven 服务器和 ant 构建的参数。但是,我已经在我的机器上创建了这个插件,并且我在本地运行目标 REST 服务器(它基于 python)。

理想情况下,我想知道如何在我的代码或插件设置中或通过首选项抑制此插件。如果那不可能,我需要一个解决方法,也可以向我们公司以外的用户解释,因为该插件将被发布。

该对话框由代码行创建

client.handle(请求)

客户端是泽西客户端,请求是泽西客户端请求。

控制台输出是

0 投票
1 回答
244 浏览

java - 从 URL 安全风险中请求 .java.policy 文件

我的客户想要使用小程序从浏览器中拖放文件传输。大多数情况下,我们的一切工作正常,但是.java.policy授予 applet 文件系统访问权限的文件需要上传到每个客户端,以便 applet 有权读取/写入文件系统。

我在客户的技术伙伴刚刚做了一些研究,希望我研究一下java 部署工具包(一个负责部署而不是使用 html 标签的 js 库)。他想让我看看我是否可以将小程序配置为使用从 URL 请求的策略文件。我无法找到如何做到这一点,这是我所期望的,因为我认为这将是一个可怕的安全风险。

问题是他们需要能够授予小程序读/写文件系统访问权限,但我觉得从 URL 请求策略文件是个坏主意,我需要帮助解释原因。

所以这就是我的问题:是否可以.java.policy从 URL 请求文件?如果是这样,那不是一个可怕的安全风险吗?

0 投票
1 回答
747 浏览

java - Tomcat 中 RMI 的安全异常

当使用作为 Tomcat7 Servlet 运行的 server.policy 时,我似乎没有让我的 RMI 服务器运行。

我的策略文件和代码库正在我的服务器上运行。

我的 server.policy 位于 /home/foo/policyfiles/server.policy。

我仍然遇到一些异常,抱怨我的 java.rmi.server.hostname 属性。

我正在使用这些代码行来检查 SecurityManager 是否正在运行:

在我这样做之后,我为 JVM 设置了我的策略文件,使用 inputstream 从属性文件加载。

我的属性文件中的行如下所示:

我的 server.policy 如下所示:

尽管如此,我还是得到了这个例外:

似乎这个小属性在我的 RMI 服务器类中搞得一团糟:

我不明白,我设置了我的策略文件,创建了一个安全管理器,将路径添加到策略文件,并设置了引发异常的属性。

是卡特琳娜在做这个吗?就像从未读取过策略文件或其他东西..

请帮我!

谢谢!

0 投票
1 回答
1742 浏览

java - 是否可以在 Policy 文件的 Jar 文件名中使用通配符?

是否可以替换如下代码:

使用这样的代码:

从而避免用新版本的库重复更改策略文件?

我在任何地方都没有看到这个记录(并且很难验证这一点)。

0 投票
2 回答
2210 浏览

java - localhost 的 java.net.SocketPermission 在 Java 1.8 上不起作用,但使用您的本地 IP 它可以

Java 8 Policy 有一个看似奇怪的问题。

我在 Java 7 中使用了以下权限,直到更新 51,它工作正常:

但现在我正在检查 Java 8 支持,我得到了这个异常:

运行 IPConfig 显示 10.1.17.122 是我本地机器的 IP:

如果我将权限更改为 127.0.0.1 它也不起作用:

但是,如果我输入我的 IP 地址,一切都会再次正常:

任何想法为什么?

编辑:对我来说,这似乎是 Java 8 中的一个错误,有人可以确认吗?

0 投票
1 回答
100 浏览

java - 附加现有的 java 策略

我有我的自定义策略文件,我想以编程方式而不是从命令提示符附加到现有的 Java 策略,因为那里=用于附加和==覆盖。

如果我尝试

那么它会附加现有的还是覆盖它?

0 投票
2 回答
3856 浏览

java - 设置哪个权限,以避免使用 https-URLS 的 Security-Manager 出错?

在客户的软件中,我们必须阅读给定的 URL 来解析他们的内容。此外,客户需要激活 Tomcat-Security-Manager 以让 Java-Policies 控制程序的功能。

现在,在读取 URL 时,会发生异常“javax.net.ssl.SSLKeyException: RSA premaster secret error”,但仅在某些条件下:

  • 如果 URL 是 HTTPS 但不是 HTTP
  • 如果安全管理器被激活,而不是在它被停用时,或者如果在全局授权块中设置了 AllPermission
  • 仅适用于 Java 6,不适用于 Java 7(客户目前需要 Java 6)
  • 只带Tomcat6,不带Tomcat 7(客户目前需要Tomcat 6)

安全违规发生在 Java 代码中的某个地方,仅限于我们的代码库的 AllPermission 并不能防止错误。

那么,是否有人有想法,为 Java 6 设置哪个权限,以便它可以处理 HTTPS?

其他信息:它在一个 tomcat 中运行,在一个带有 OpenJDK 的 Debian-Linux 上。

编辑:我在变量 JAVA_OPTS 中将 Java 参数“-Djava.security.debug=access,failure”添加到 Tomcats /etc/default/tomcat6 中。但是在日志中我没有其他消息。代码是否有可能在触发权限之前询问权限?

EDIT2:我找到了正确的位置并获得了完整的堆栈跟踪(删除了特定的客户部分):

EDIT3:到目前为止,我假设 Java 类 URL 用于访问资源的内容。但这是不正确的。它使用 Grails-Code 中的 Groovy-URL-object 和 getText()-method:

错误发生在这条线上。它是 Grails 版本 2.2.4。

0 投票
0 回答
953 浏览

java - Java SecurityManager AccessControlException - 从网络共享运行

我有一个 Java 8 应用程序,它通过 Nashorn JavaScript ScriptEngine 评估用户提供的代码。为了防止评估恶意代码,我使用以下策略启用 Java SecurityManager:

这允许我的主要 Java 应用程序不受限制地运行,但任何 JavaScript 代码都仅限于通过第二个授权块授予的权限。我将我的应用程序打包到一个 MyApp.jar 文件中,一般来说这可以正常工作,并且每次有人尝试java.lang.System.exit()从我的 ScriptEngine 等调用时都会引发 AccessControlException。

现在解决问题 - 如果我将 jar 文件放在网络共享 ( \\global\fs\Technology\Tools\MyApp.jar) 上,那么我的应用程序将无法加载,因为“AllPermission”授权块似乎与我的代码库不匹配。有没有其他人遇到过这个问题并且知道如何解决它 - 这只发生在网络驱动器上,而不是如果我将它放在其他任何地方。

这是调试输出 -

这会导致以下错误消息:

我什至尝试完全按照上面的方式引用 codeBase,但我仍然遇到同样的问题:

更新进一步的调试显示了Java中的错误?我已经在策略文件中完全匹配了“Active CodeSource”,但它仍然拒绝它:

通过policy调试,我看到以下内容(我确实注意到file:/-更改为只允许我当前的 C: 驱动器):

如您所见,它正在将“Policy CodeSource”与“Active CodeSource”进行比较,并说即使它们相同也不匹配?!?由于它们不匹配,因此我的通用授权块只授予有限的权限。

只有当我当前的工作目录与我的 JAR 文件位于不同的驱动器或文件系统上时,才会出现这种情况。

无论路径如何,都不能授予“MyApp.jar”权限吗?