问题标签 [securitymanager]
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 - 全局是否可以接受并最终存储 SecurityManager 的检查
全局并最终存储安全经理的检查是否可以接受?
给定以下代码行:
将其放在库中并在 JVM 的整个生命周期内重用结果是否可以接受?
为什么?或者为什么不呢?
[更新] Java EE - JSP 规范的参考实现中存在类似代码。任何使用它的应用服务器/servlet 容器都不支持 SecurityManager 的动态配置。
java - JFrame 中的沙箱 JPanel
我有一个 JFrame,里面有一个 JPanel。我正在加载一些不受信任的第 3 方代码,这些代码需要向我的 JPanel 添加一些组件。如何对我的 JPanel 进行沙箱处理,以使第 3 方组件无法访问 JPanel 之外的资源(例如 JFrame)?
java - Java SecurityManager @Override public void checkPermission(Permission perm)
我正在构建一个 SWING 应用程序,还需要编写一个自定义 SecurityManager。如果我写一个像这样扩展 SecurityManager 的空类
它工作正常,这意味着 GUI 可以正确呈现,并且 I/O 等所有权限都被撤销。但是我需要自定义 checkPermission 方法,每当我覆盖它时,它就不再起作用了......为什么即使这样的东西也不应该起作用?
更新:显示问题的一个非常基本的例子是这个
删除应用程序正常工作的“checkPermission”方法,但我真的无法理解这一点。
java - 授予 SecurityManager 下的脚本以访问系统属性
我想允许沙箱中的脚本访问系统属性,但我得到了AccessControlException
s. 这是代码:
调试时,我看到了这个输出:
(调用代码-Djava.security.debug=all
以获得相同的输出)
第一个块来自java.policy
JRE 附带的全局文件。
下一个块是代码尝试检查对java.version
.
最后一个块表明这失败了。
这让我感到惊讶,因为在策略文件中允许访问该属性。
PropertyPermission
为了提供帮助,我启用了添加for的注释行java.version
。现在第一次System.getProperty( "java.version" )
通过。
但第二个仍然失败:
我真的被这件事难住了。从代码来看,Java似乎总是ProtectionDomain
按顺序检查所有的s(我有四个)。如果他们中的任何一个不喜欢您的访问,它将被拒绝。
但是我看不到第二个域如何允许访问任何属性,所以我期望要么都失败,要么都成功。
我错过了什么?
java - 我可以信任 Java SecurityManager 沙箱吗?
我正在编写一个 JavaFX2 应用程序,它接受从远程位置加载的任意代码。对我来说,使用自定义 SecurityManager、ClassLoader 和 ProtectionDomain 是要走的路。不幸的是,这似乎与用于沙盒小程序的设置相同,这导致了许多安全漏洞,这反过来又使人们害怕 Java Web 插件并将其从他们的操作系统中完全删除。
Java 沙箱是运行不受信任代码的安全环境,还是只是整个 Java Web 插件不安全?
java - 启用 java 安全管理器限制 udp 套接字计数
我有带有自定义安全策略的 java 应用程序,当我尝试打开 100 个 udp 套接字时出现异常:
测试应用:
如果我在没有安全管理器的情况下启动它,它会创建所有 100 个套接字:
但是如果我将此行添加到 VM 参数
即使使用默认安全策略,它也会失败:
使用安全管理器时如何更改套接字限制?
UPD:它在 windows 8.1 x64、windows 7 x64 和 windows xp sp3 x32、windows 7 x32 上复制。在所有系统上都使用了 JDK 1.6.45 x32。
UPD2:在 windows xp sp3 x32 上也用 JDK7 复制,但不能用 JDK 1.6.27 复制。
UPD3:调试JDK类发现这个:
在开放 JDK 实现中,默认套接字限制为 1024 http://www.docjar.com/html/api/sun/net/ResourceManager.java.html
security - 使用启用了安全管理器的 tomcat 时安全连接失败
我已经在启用 SSL 的 tomcat 6 上部署了一个 Web 应用程序(example.war)。
当我在没有安全管理器的情况下启动 tomcat 并尝试使用 url: 连接到服务器时,"https://localhost:8443/example"
它成功连接并显示 index.jsp 文件(欢迎文件)的内容。
但是当我用安全管理器启动tomcat时,它在浏览器(firefox)上显示相同url的以下错误。
这是 catalina.policy 中提供的权限
当我提供如下所有权限时,它工作正常:
我想知道我应该添加哪些特定权限以便在不提供 AllPermission 的情况下使其工作?
java - java.security 与 javax.security
我对 Java (6+) 如何分发其安全框架感到有些困惑。一方面,您有以下包(以及它们各自的子包和类型):
java.security.*
javax.security.*
另一方面,您有java.lang.SecurityManager
,可能还有其他与安全相关的类型散布在其他非安全包中(如java.lang
)。
所以,几个问题:
java.security
和 和有什么不一样javax.security
?何时在每个中使用类型?- 此外
java.lang
,是否还有其他以安全为中心的类型出现的包,如果有,它们是什么? - JCE 和 JCA 在哪里适合?它们包含哪些包,或者它们完全独立并在自己的 JAR 中?
java - How to run a plugin with a Custom Security Manager?
Right now I am loading classes with a custom Classloader, and then running them. However I want to implement a Security Manager for these classes to prevent them from doing anything malicious.
This includes accessing the filesystem, network, reflection, or running threads. In fact I want to be able whitelist the API they are allowed to access/include/instantiate. Obviously I also want it to be able to access its own files.
The program in question is just a standard Java Program. Not Tomcat, embedded or an applet.
java - 如何允许最终用户在特定安全约束下在 JEE 环境中运行脚本?
我的 JEE 应用程序在 tomee 下运行,并允许用户编写他/她自己的脚本并从 web gui 运行,但我想限制某些操作,例如 System.exit(1)。
可以在 beanshell2 论坛中找到与此问题相关的讨论 - 请查看 - http://code.google.com/p/beanshell2/issues/detail?id=15
任何在 JVM 中工作的可脚本化语言都可以,但我需要这种级别的控制。我的第一次尝试是使用 beanshell,但从上面的讨论中我们可以看出,这似乎不是一个选择。
我想避免使用更多深奥的语言,因为最终用户是技术人员,但我不能要求他/她学习未知的编程语言只是为了编写脚本:-) [或者我可以,如果我没有找到任何有用的选项]
我怎么能得到那个?时髦?任何其他基于 JVM 的脚本语言可能吗?