System.setSecurityManager的影响(null)

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

java.security.AccessControlException:拒绝访问(“java.security.SecurityPermission”“authProvider.SunMSCAPI”)

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

既然你在谈论applet

来自安全经理的文档

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

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

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

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

请在将其设为null之前阅读完整的文档,因为您欢迎应用程序以及最终用户的安全问题。

清除applet中的安全管理器是一个非常糟糕的主意。 如果applet具有该权限,那么无论如何它都可以作为本地用户执行任何操作。 但是,一旦您清除安全管理器,该管理器中运行的所有代码都将成为现实,包括来自其他站点的未签名applet。 任何清除安全管理器的applet(使用有效证书签名)都应列入黑名单。