- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是 SecurityManager 的初学者。我一直在尝试使用 Java SecurityManager 在 linux 中对一些不受信任的代码(应该是非常简单的代码,比如计算权重等)进行沙盒处理。我使用命令 java -Djava.security.manager
来运行 .class
文件。
让我感到困惑的一件事是:有人说 SecurityManager 的默认策略几乎允许所有操作,您需要编写自己的策略来拒绝一些有风险的操作(例如从磁盘读取/写入文件);而其他一些人说默认策略实际上拒绝每一个冒险行为,如果你需要允许一些冒险行为,你可以为该行为编写自己的策略。
我的问题是:
附言。我实际上想拒绝所有冒险行为。因此,如果默认策略是拒绝所有冒险操作,我想我会使用默认的 SecurityManager。
最佳答案
默认的安全策略非常严格。您可以在 java.home/lib/security/java.policy
grant { ... };
block 中未包含的适用于所有域的所有内容,例如 java.io.FilePermissions
,均未授予你运行的任意代码。
Java 安全策略文件不支持“拒绝”配置,仅支持grant
。这就是从一个相对严格的文件开始是有意义的部分原因,用户可以在该文件之上添加用户或应用程序策略文件。
引用:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html
关于Java 默认的 SecurityManager 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132792/
我有java应用程序,我正在考虑安全性。我可以混淆代码,但我仍然可以使用例如 javassist 从内存中“窃取”代码或在运行时修改代码。我正在寻找 SecurityManager 来在修改之前保护我
运行以下代码,我在 getPackage() 行收到 StackOverflowError。如果我无法访问 getPackage() 来检查包,如何才能只向我想要的包内的类授予权限? package
我一直在尝试使用自定义 SecurityManager 来沙箱一些外部加载的代码。我的 SecurityManager 工作正常。我采取了与这里许多帖子建议的相同的方法:每当执行潜在危险的代码时设置自
我有一个程序在其所有线程中运行一个基本的 RMISecurityManager。但是我想对几个线程做更多的控制,并专门为这些线程设置另一个 SecurityManager。 我该怎么做? ...如果这
有没有办法为 Java SecurityManager 创建一个自定义策略文件,它位于我想要的任何位置?如果是,我该怎么做,以及如何以编程方式将 SecurityManager 绑定(bind)到该文
我能否使用自定义的 SecurityManager 避免第三方代码创建新线程、启动新 VM 或泄露数据? 最佳答案 线程创建导致调用 securityManager.checkAccess(g),其中
我想创建一个非常严格的安全管理器,所以我扩展了 SecurityManager 并覆盖了所有自定义的 checkXXX 方法。 但后来我发现我的安全管理器没用,因为任何人都可以: System.set
我是一名大学讲师,我正在修改关于 Java 反射的讲座。其他年份,当我教授抑制访问检查的恐怖时,我展示了您可以设置一个 SecurityManager 并执行类似的操作 if ("suppre
我是一名大学讲师,我正在修改关于 Java 反射的讲座。其他年份,当我教授抑制访问检查的恐怖时,我展示了您可以设置一个 SecurityManager 并执行类似的操作 if ("suppre
任何人都可以解释以下 c# 行为吗?我已经编写了一个小型控制台应用程序来了解 CAS,但我似乎无法理解为什么以下代码行会像它们那样工作: string[] myRoles = new string[]
此问题是 my previous question about unusual exceptions generated by a custom security manager. 的后续问题在高层次
经过大量搜索和反复试验,我仍然无法确定是否需要安全管理器,如果需要,如何让它发挥作用。 启动服务器的代码: Registry registry; try { Syste
全局并最终存储安全管理器的检查是否可以接受? 给出以下代码行: public static final boolean SEC_ON = (System.getSecurityManager() !=
我有一个方法 A,它可能如下所示: public double A{ if (secM == null) { secM = new SecurityManager(); Syste
我正在尝试集成 Spring Boot 和 Shiro。当我尝试在我的一个 Controller 中调用 SecurityUtils.getSubject() 时,发生了异常:org.apache.s
我想禁止 spring webapp(在 tomcat 中运行)使用任何包含“..”的文件路径。 显然,首先要做的是在用户信息被用于文件路径之前对其进行清理的地方。但是,应用程序中有数百个地方进行文件
我想允许沙箱中的脚本访问系统属性,但我收到 AccessControlException。这是代码: import static org.junit.Assert.*; import java.sec
全部, 我正在设计一个基于云的服务,该服务将提供执行客户提交的一些“插件”代码的选项。为了使这项工作有效,插件不能威胁系统完整性或具有访问其他客户端数据的任何能力是至关重要的。 理想情况下,我希望客户
我有一个用于受信任应用程序代码的 ClassLoader 和一个用于用户提交(不受信任)代码的单独 ClassLoader。 我希望安全管理器限制用户提交的代码。如何从 SecurityManager
我目前正在尝试在 gradle 中为共享构建服务器运行一些测试。我收到以下错误: Error occurred during initialization of VM java.lang.Int
我是一名优秀的程序员,十分优秀!