假设我编写了一个需要访问Internet的Java应用程序.通常会弹出防火墙并询问是否正常.现在,我可以选择通常允许Internet访问或使用特定规则.由于我只检查一个Web服务,因此我设置了一条规则,限制在某个端口访问该服务器.
现在我有Java应用程序#2也需要Internet访问.如果我决定给应用程序#1完全访问权限,那么#2也具有完全访问权限.对于上面规则集的解决方案,我需要添加另一个规则,或者只是放弃并授予完全访问权限,因此,还要为应用程序#1提供完全访问权限.
我想你可以看出我的问题是什么.前段时间我遇到了同样的情况,我尝试了一个或两个将JAR转换为可执行文件的包装器.我注意到最后他们只是启动了JVM,导致通常的Java二进制文件打开Internet连接.
所以我的问题是:我有哪些选项允许用户为每个Java应用程序指定不同的防火墙规则?
编辑:在阅读完第一条评论之后,我想明确表示我并没有考虑如何配置防火墙,而是采用某种方式让Java应用程序本身具有或多或少的独特方式来识别自己或以其他方式处理网络访问.
当您需要更细粒度的访问时。为什么不编写一个策略文件并允许安全管理员管理SocketPermissions
分配给您的程序的策略文件?
http://download.oracle.com/javase/7/docs/technotes/guides/security/permissions.html。
下面的例子。
grant signedBy "paul" {
permission java.net.SocketPermission "localhost:1024-", "accept, connect, listen";
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16269 次 |
最近记录: |