对于某些方法调用,您总是可以看到此类安全检查。 我知道它是如何工作的,但我不知道检查它们的原因。或者说最适合使用它们的用例?我只是很惊讶在 JDK 源代码中经常能找到它们,但几乎没有 知道目的。你们在工作中使用过它们吗?在哪些情况下?
我需要在这里添加一个约束。文件权限非常简单。我的意思是那些函数调用权限检查。什么样的函数调用被认为是危险的并且应该由安全管理器检查?
例如,
jaav.security.Policy。
private static void checkPermission(String type) {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
sm.checkPermission(new SecurityPermission("createPolicy." + type));
}
}
最佳答案
一些 Java 应用程序在沙盒环境中运行(小程序、WebStart 应用程序等),以防止它们变得令人讨厌(例如,在某个随机 HTML 页面中执行的小程序不应该能够访问文件系统并读取您的所有个人数据)。这些检查构成了沙箱。
有一些方法可以启用其中一些受限操作(通过签署 jar 并请求最终用户的批准)。
安全管理器处理允许的内容和不允许的内容。阅读 http://download.oracle.com/javase/6/docs/technotes/guides/security/permissions.html 。它列出了所有权限并描述了允许这些权限会遇到哪些风险。
关于java - 使用 java.lang.SecurityManager 的最合适用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131911/