SWF 文件之间的 HTTP 到 HTTPS 协议访问

如前面一节中所述(请参见SWF 文件之间的跨域和子域访问),在 Flash Player 7 中已更改了跨域访问规则。除了现在正实现的完全域匹配规则外,您必须显示允许在使用不安全协议的站点上承载的文件可以访问在使用安全协议 (HTTPS) 的站点上承载的文件。根据被调用的文件是以 Flash Player 7 还是 Flash Player 6 为目标播放器发布的,您必须或者实现 allowDomain 语句之一(请参见SWF 文件之间的跨域和子域访问),或者使用新的 LocalConnection.allowInsecure DomainSystem.security.allowInsecureDomain() 语句。

警告:实现 allowInsecureDomain() 语句将会损及 HTTPS 协议提供的安全性。只有在您无法重新组织您的站点的情况下才应进行这些更改,以便从 HTTPS 协议提供所有 SWF 文件。

以下代码显示您可能要进行更改的类型的示例:

// 位于 https://www.someSite.com 的 Flash Player 6 SWF 文件中的命令
// 允许由在
// http://www.someSite.com 或 http://www.someOtherSite.com 承载的 Flash Player 7 SWF 文件访问
System.security.allowDomain("someOtherSite.com");
my_lc.allowDomain = function(sendingDomain) {  
  return(sendingDomain=="someOtherSite.com");
}
// Flash Player 7 SWF 文件中的相应命令
// 允许由在
// http://www.someSite.com 或 http://www.someOtherSite.com 承载的 Flash Player 7 SWF 文件访问
System.security.allowInsecureDomain("www.someSite.com", "www.someOtherSite.com");
my_lc.allowInsecureDomain = function(sendingDomain) {  
  return(sendingDomain=="www.someSite.com" ||
    sendingDomain=="www.someOtherSite.com");
}

如果您当前没有使用如下语句,可能还需要将这些语句添加到您的文件中。即使两个文件位于同一域中(例如,http://www.domain.com 中的文件正调用 https://www.domain.com 中的文件),也可能需要进行修改。

总之,如果您以 Flash Player 7 为目标播放器发布满足以下条件的文件,则可能需要修改您的文件以添加或更改语句:

您必须进行以下更改: