我是Java安全策略的新手,请参阅[Java核心编程]第2卷,其中有使用策略文件为文件指定权限等的示例。
我的问题是:
(1)开发自己的应用程序或小程序时,可以使用此策略来限制自己程序的许可。但是限制自己没有多大意义-我认为策略的意思是限制网络或其他来源的未知源或类。那么如何做这种限制呢?在书或网上都找不到很好的例子。
(2)除了使用applet(如今已过时)之外,在生产环境中使用java.policy文件的通常情况是什么?
非常感谢。
答案 0 :(得分:2)
但是限制自己没有多大意义。
这很有意义。例如,假设您使用纯Java实现了Web服务器,并且需要将其公开在公共IP地址上。假设您担心代码(或Java SE或第三方库)中可能存在安全漏洞,可能导致JVM受到威胁。保护您的系统的一种可能方法是实现Web服务器以使用Java安全框架来限制(假设地)被破坏的代码读取/写入文件系统中的文件,启动单独的进程,建立网络连接等等的能力。 / p>
(请注意,还有其他方法可以解决上述问题,例如SE Linux和Apparmor。)
我认为政策的意思是限制网络或其他来源的未知来源或类别。那么如何进行这种限制呢?
是的,这是安全策略的常规用法。
基本思想是应用程序以完全特权启动。要运行不受信任的代码,请使用策略文件实例化安全管理器。然后,使用该安全管理器实例化(沙盒)类加载器。然后,使用沙箱类加载器加载不受信任的代码。
其他然后使用applet(如今已过时)在生产环境中使用java.policy文件的通常情况是什么?
请参阅上文中的一种情况。
另一种情况是您需要运行不基于applet的不受信任的Java代码。例如,为最终用户提供的应用程序运行插件,或设置公共服务器以进行竞争性编码。