我是SecurityManager的初学者。我一直试图使用Java SecurityManager来沙箱一些不受信任的代码(应该是非常简单的代码,比如计算权重等等)。在linux中。我使用命令java -Djava.security.manager来运行.class文件。
让我感到困惑的一件事是:有人说SecurityManager的默认策略允许几乎所有的操作,并且您需要编写自己的策略来拒绝一些危险的操作(例如从磁盘读取/写入文件);而另一些人则说默认策略实际上拒绝每个有风险的操作,如果您需要允许一些有风险的操作,您可以为该操作编写自己的策略。
我的问题是:
ps。我真的想否认所有冒险的行为。因此,如果默认策略是拒绝每个有风险的操作,我想我将使用默认的SecurityManager。
发布于 2014-10-01 22:25:19
默认的安全策略相当严格。您可以在java.home/lib/security/java.policy查看默认的java策略。
应用于所有域的grant { ... };块中没有包含的所有内容,例如java.io.FilePermissions,都不会授予您运行的任意代码。
Java文件不支持“拒绝”配置,只支持grant的配置。这就是为什么从一个相对严格的文件开始,用户可以在上面添加用户或应用程序策略文件。
参考资料:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html
发布于 2016-09-30 16:05:16
默认的JOptionPane.showMessageDialog,实现允许调用我认为有风险的操作,因为它会激怒用户。
https://stackoverflow.com/questions/25132792
复制相似问题