问题标签 [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.
java - Java 策略设置不适用于 FilePermission
我们的 Java 策略文件过去只是:
我正在努力使我们的应用程序更安全,而不仅仅是将一切授予所有人。我让它运行良好,除了我在授予文件权限时遇到问题。
我目前得到的错误是:
我尝试了很多东西的组合,例如:
我唯一能让它工作的是使用:
使用时出现错误“java.io.FileNotFoundException: \server.log(文件名、目录名或卷标语法不正确)”(即使文件确实存在):
只是想知道是否有人有其他想法可以尝试。我真的不想为了获得正确的文件权限而求助于授予所有权限,显然我错过了一些东西。
编辑:
我刚刚意识到这可能是日志文件中的一个线索:
也许我特别需要一些权限?现在在谷歌周围挖掘......
eclipse-plugin - 在使用 jersey 的 eclipse 扩展插件中抑制 Applet Alert
我为 KNIME(基于 eclipse 的软件)编写了一个 REST 客户端插件。我用球衣作为图书馆。
一切正常。但是,如果我发送客户端请求,则会弹出一个小程序警报对话框,询问我是否要允许、禁止或停止小程序。这个对话框很烦人,特别是如果你想提交多个请求。我该如何摆脱它?
到目前为止,我发现的所有内容都是指防病毒软件在下载期间向 .jar 文件添加内容,调整 maven 服务器和 ant 构建的参数。但是,我已经在我的机器上创建了这个插件,并且我在本地运行目标 REST 服务器(它基于 python)。
理想情况下,我想知道如何在我的代码或插件设置中或通过首选项抑制此插件。如果那不可能,我需要一个解决方法,也可以向我们公司以外的用户解释,因为该插件将被发布。
该对话框由代码行创建
client.handle(请求)
客户端是泽西客户端,请求是泽西客户端请求。
控制台输出是
java - 从 URL 安全风险中请求 .java.policy 文件
我的客户想要使用小程序从浏览器中拖放文件传输。大多数情况下,我们的一切工作正常,但是.java.policy
授予 applet 文件系统访问权限的文件需要上传到每个客户端,以便 applet 有权读取/写入文件系统。
我在客户的技术伙伴刚刚做了一些研究,希望我研究一下java 部署工具包(一个负责部署而不是使用 html 标签的 js 库)。他想让我看看我是否可以将小程序配置为使用从 URL 请求的策略文件。我无法找到如何做到这一点,这是我所期望的,因为我认为这将是一个可怕的安全风险。
问题是他们需要能够授予小程序读/写文件系统访问权限,但我觉得从 URL 请求策略文件是个坏主意,我需要帮助解释原因。
所以这就是我的问题:是否可以.java.policy
从 URL 请求文件?如果是这样,那不是一个可怕的安全风险吗?
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 服务器类中搞得一团糟:
我不明白,我设置了我的策略文件,创建了一个安全管理器,将路径添加到策略文件,并设置了引发异常的属性。
是卡特琳娜在做这个吗?就像从未读取过策略文件或其他东西..
请帮我!
谢谢!
java - 是否可以在 Policy 文件的 Jar 文件名中使用通配符?
是否可以替换如下代码:
使用这样的代码:
从而避免用新版本的库重复更改策略文件?
我在任何地方都没有看到这个记录(并且很难验证这一点)。
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 中的一个错误,有人可以确认吗?
java - 附加现有的 java 策略
我有我的自定义策略文件,我想以编程方式而不是从命令提示符附加到现有的 Java 策略,因为那里=
用于附加和==
覆盖。
如果我尝试
那么它会附加现有的还是覆盖它?
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。
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”权限吗?