问题标签 [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.

0 投票
3 回答
66 浏览

java - 全局是否可以接受并最终存储 SecurityManager 的检查

全局并最终存储安全经理的检查是否可以接受?

给定以下代码行:

将其放在库中并在 JVM 的整个生命周期内重用结果是否可以接受?

为什么?或者为什么不呢?

[更新] Java EE - JSP 规范的参考实现中存在类似代码。任何使用它的应用服务器/servlet 容器都不支持 SecurityManager 的动态配置。

0 投票
1 回答
108 浏览

java - JFrame 中的沙箱 JPanel

我有一个 JFrame,里面有一个 JPanel。我正在加载一些不受信任的第 3 方代码,这些代码需要向我的 JPanel 添加一些组件。如何对我的 JPanel 进行沙箱处理,以使第 3 方组件无法访问 JPanel 之外的资源(例如 JFrame)?

0 投票
2 回答
1440 浏览

java - Java SecurityManager @Override public void checkPermission(Permission perm)

我正在构建一个 SWING 应用程序,还需要编写一个自定义 SecurityManager。如果我写一个像这样扩展 SecurityManager 的空类

它工作正常,这意味着 GUI 可以正确呈现,并且 I/O 等所有权限都被撤销。但是我需要自定义 checkPermission 方法,每当我覆盖它时,它就不再起作用了......为什么即使这样的东西也不应该起作用?

更新:显示问题的一个非常基本的例子是这个

删除应用程序正常工作的“checkPermission”方法,但我真的无法理解这一点。

0 投票
1 回答
2164 浏览

java - 授予 SecurityManager 下的脚本以访问系统属性

我想允许沙箱中的脚本访问系统属性,但我得到了AccessControlExceptions. 这是代码:

调试时,我看到了这个输出:

(调用代码-Djava.security.debug=all以获得相同的输出)

第一个块来自java.policyJRE 附带的全局文件。

下一个块是代码尝试检查对java.version.

最后一个块表明这失败了。

这让我感到惊讶,因为在策略文件中允许访问该属性。

PropertyPermission为了提供帮助,我启用了添加for的注释行java.version。现在第一次System.getProperty( "java.version" )通过。

但第二个仍然失败:

我真的被这件事难住了。从代码来看,Java似乎总是ProtectionDomain按顺序检查所有的s(我有四个)。如果他们中的任何一个不喜欢您的访问,它将被拒绝。

但是我看不到第二个域如何允许访问任何属性,所以我期望要么都失败,要么都成功。

我错过了什么?

0 投票
1 回答
289 浏览

java - 我可以信任 Java SecurityManager 沙箱吗?

我正在编写一个 JavaFX2 应用程序,它接受从远程位置加载的任意代码。对我来说,使用自定义 SecurityManager、ClassLoader 和 ProtectionDomain 是要走的路。不幸的是,这似乎与用于沙盒小程序的设置相同,这导致了许多安全漏洞,这反过来又使人们害怕 Java Web 插件并将其从他们的操作系统中完全删除。

Java 沙箱是运行不受信任代码的安全环境,还是只是整个 Java Web 插件不安全?

0 投票
1 回答
3674 浏览

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

0 投票
1 回答
3132 浏览

security - 使用启用了安全管理器的 tomcat 时安全连接失败

我已经在启用 SSL 的 tomcat 6 上部署了一个 Web 应用程序(example.war)。

当我在没有安全管理器的情况下启动 tomcat 并尝试使用 url: 连接到服务器时,"https://localhost:8443/example"它成功连接并显示 index.jsp 文件(欢迎文件)的内容。

但是当我用安全管理器启动tomcat时,它在浏览器(firefox)上显示相同url的以下错误。

这是 catalina.policy 中提供的权限

当我提供如下所有权限时,它工作正常:

我想知道我应该添加哪些特定权限以便在不提供 AllPermission 的情况下使其工作?

0 投票
1 回答
3897 浏览

java - java.security 与 javax.security

我对 Java (6+) 如何分发其安全框架感到有些困惑。一方面,您有以下包(以及它们各自的子包和类型):

  • java.security.*
  • javax.security.*

另一方面,您有java.lang.SecurityManager,可能还有其他与安全相关的类型散布在其他非安全包中(如java.lang)。

所以,几个问题:

  1. java.security和 和有什么不一样javax.security?何时在每个中使用类型?
  2. 此外java.lang,是否还有其他以安全为中心的类型出现的包,如果有,它们是什么?
  3. JCE 和 JCA 在哪里适合?它们包含哪些包,或者它们完全独立并在自己的 JAR 中?
0 投票
0 回答
130 浏览

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.

0 投票
2 回答
85 浏览

java - 如何允许最终用户在特定安全约束下在 JEE 环境中运行脚本?

我的 JEE 应用程序在 tomee 下运行,并允许用户编写他/她自己的脚本并从 web gui 运行,但我想限制某些操作,例如 System.exit(1)。

可以在 beanshell2 论坛中找到与此问题相关的讨论 - 请查看 - http://code.google.com/p/beanshell2/issues/detail?id=15

任何在 JVM 中工作的可脚本化语言都可以,但我需要这种级别的控制。我的第一次尝试是使用 beanshell,但从上面的讨论中我们可以看出,这似乎不是一个选择。

我想避免使用更多深奥的语言,因为最终用户是技术人员,但我不能要求他/她学习未知的编程语言只是为了编写脚本:-) [或者我可以,如果我没有找到任何有用的选项]

我怎么能得到那个?时髦?任何其他基于 JVM 的脚本语言可能吗?