System.setSecurityManager的影响(null)

时间:2013-10-21 06:15:36

标签: java security applet

我在Applet中遇到了一些问题。以下是该问题的链接。

java.security.AccessControlException: access denied ("java.security.SecurityPermission" "authProvider.SunMSCAPI")

我刚刚添加了System.setSecurityManager(null)我的applet工作正常。我想知道,设置安全管理器对null的影响是什么?它会使数据不安全吗?或其他什么。

2 个答案:

答案 0 :(得分:4)

因为你在谈论applet

来自Security manager

的文档
  

通常,Web applet与浏览器或Java Web Start插件提供的安全管理器一起运行。除非应用程序本身定义一个,否则其他类型的应用程序通常在没有安全管理器的情如果没有安全管理器,则该应用程序没有安全策略,并且没有任何限制。

因此,通过传递null,您将禁用运行时环境的安全性。

例如 System.exit ,它终止具有退出状态的Java虚拟机,调用SecurityManager.checkExit以确保当前线程有权关闭申请。

还有一些例子,如果您禁用安全管理器,如文件权限等,会发生什么。

请在制作文档之前阅读完整的文档null,因为您欢迎应用程序和最终用户的安全问题。

答案 1 :(得分:0)

清除applet中的安全管理器是一个非常糟糕的主意。如果applet具有该权限,那么无论如何它都可以作为本地用户执行任何操作。但是,一旦您清除了安全管理器,该管理器将在该进程中运行所有代码,包括来自其他站点的未签名applet。

,任何清除安全管理器的applet(用有效证书签名)都应列入黑名单。