1.7版本55中的Java小程序安全警告提示



使用Java 7u55,如果网页试图通过JavaScript与其交互,并且该页面未在清单的Caller Allowed Codebase属性中列出,则小程序将显示警告消息(即使使用可信证书签名)。

如果给定了服务器的呼叫者允许的代码库:IP地址,则不会看到安全提示。但是,我们的应用程序是一个intranet站点,托管在IIS中。客户端系统访问http:://<ServerName>/<WebSite VirtualPathName>网站服务器名称/IP地址不是固定的。该应用程序可以安装在任何Web服务器中。

有什么办法可以停止警告提示吗?

简单的答案是否定的。唯一的问题是你可以在属性中放入几个域/ips:

host.example.com 127.0.0.1 192.168.1.100

如果是内部网络,您可以尝试使用192.168.0.*或192.168.0.1/24

在7u55的发行说明中,您可以阅读以下内容:

在调用者允许的Codebase属性中使用""如果独立星号()被指定为Caller Allowable Codebase属性,然后从JavaScript代码调用到RIA将显示安全警告,用户可以选择允许呼叫或阻止呼叫。

此外,JAR文件清单属性文档指出:

Caller Allowable Codebase属性用于标识JavaScript代码可以从中调用RIA的域安全提示。将此属性设置为承载JavaScript代码。如果调用的JavaScript代码不是位于由调用者允许的代码库指定的域中属性,则调用被阻止。

如果Caller Allowed Codebase属性不存在,则从RIA的JavaScript代码显示安全警告,并且用户允许呼叫或阻止呼叫的选择。对于未签名RIA,需要访问RIA的JavaScript代码必须位于位置作为RIA的主JAR文件,否则,用户提示允许访问。

有关以下值的描述,请参见Codebase属性允许。如果将独立星号(*)指定为调用方允许的Codebase属性,然后从JavaScript调用RIA的代码显示安全警告,用户可以选择允许呼叫或阻止呼叫。记住选择的选项是也提供,如果选择,则当RIA被启动。

更新:我知道这很令人沮丧,就我个人而言,我认为oracle会因为其最新的安全决策而破坏小程序(或其剩余部分)的使用。正如你可能看到的,只有当你

  1. 省略调用者允许的Codebase属性
  2. 或者如果使用独立的星号(*)

你能做的是:

"指定多个域,用空格分隔域"

我还没有尝试过,但我会把所有内部ip地址范围都放在那里:

Caller-Allowable-Codebase: 10.* 192.168.* 172.* 169.*

如果有效,您可以尝试添加所有IP地址范围;-)

Caller-Allowable-Codebase: 1.* 2.* 3.* 4.* 5.* .... 255.* 

如果子网语法有效,您也可以尝试:

 0.0.0.0/0 (whole IP 4 address space) or something like that

最新更新