如前面一节中所述(请参见SWF 文件之间的跨域和子域访问),在 Flash Player 7 中已更改了跨域访问规则。除了现在正实现的完全域匹配规则外,您必须显示允许在使用不安全协议的站点上承载的文件可以访问在使用安全协议 (HTTPS) 的站点上承载的文件。根据被调用的文件是以 Flash Player 7 还是 Flash Player 6 为目标播放器发布的,您必须或者实现 allowDomain
语句之一(请参见SWF 文件之间的跨域和子域访问),或者使用新的 LocalConnection.allowInsecure Domain
或 System.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 为目标播放器发布满足以下条件的文件,则可能需要修改您的文件以添加或更改语句:
loadMovie()
、MovieClip.loadMovie()
、MovieClipLoader.LoadClip()
或本地连接对象)。您必须进行以下更改:
System.security.allowInsecureDomain
或 LocalConnection.allowInsecureDomain
,并且使用完全域名匹配,如本节前面部分的代码示例所示。即使调用和被调用的 SWF 文件都位于同一域中,也要求此语句。System.security.allowDomain
或 LocalConnection.allowDomain
,并且使用完全域名匹配,如本节前面部分的代码示例所示。 System.security.allowInsecureDomain
或 LocalConnection.allowInsecureDomain
,并且使用完全域名匹配,如本节前面部分的代码示例所示。即使两个文件都位于同一域中,也要求此语句。 System.security.allowDomain
语句,并且使用完全域名匹配,如本节前面部分的代码示例所示;或者可以将该被调用文件移植到 Flash Player 7 中,在该被调用文件中包括 System.security.allowInsecureDomain
语句,并且使用完全域名匹配,如本节前面部分的代码示例所示。