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