打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于 XMLSocket 策略文件

关于 XMLSocket 策略文件

对于 XMLSocket 连接试图而言,Flash Player 7 (7.0.14.0) 会在试图连接的子域内的 HTTP 服务器(端口 80)上查找 crossdomain.xml。Flash Player 7 (7.0.14.0) 以及所有早期版本将 XMLSocket 连接限制在端口 1024 和更高的端口。但是,在 Flash Player 7 (7.0.19.0) 和更高版本中,ActionScript 可以使用 System.security.loadPolicyFile 将策略文件的非默认位置通知 Flash Player。XMLSocket 策略文件的任何自定义位置都必须仍在 XML 套接字服务器上。

在下面的示例中,Flash Player 从指定的 URL 检索策略文件:

System.security.loadPolicyFile("http://www.adobe.com/folder/policy.xml");

由该位置的策略文件授予的所有权限均适用于服务器层次结构中与该位置同层或低于该层的所有内容。因此,如果您试图加载下面的数据,会发现只能加载某些位置的数据:

myLoadVars.load("http://www.adobe.com/folder/vars.txt"); // 允许myLoadVars.load("http://www.adobe.com/folder/dir/vars2.txt"); // 允许myLoadVars.load("http://www.adobe.com/elsewhere/vars3.txt"); // 不允许

要解决此问题,可以使用 loadPolicyFile 向一个 SWF 文件加载多个策略文件。Flash Player 总是等所有策略文件下载完毕后,才会拒绝需要策略文件的请求。如果 SWF 中没有其它授权的策略,则 Flash Player 将查询 crossdomain.xml 的默认位置。

特殊语法允许直接从 XMLSocket 服务器检索策略文件:

System.security.loadPolicyFile("xmlsocket://adobe.com:414");

在本例中,Flash Player 试图从指定的主机和端口检索策略文件。如果策略文件不在默认(根)目录中,可以使用任意端口;否则只能使用端口 1024 和更高的端口(与早期版本的播放器相同)。建立与指定端口的连接后,Flash Player 将发送 <policy-file-request />,以空字节结束。

可以配置 XML 套接字服务器,使其通过以下方式提供策略文件:

  • 在同一端口上提供策略文件和常规套接字连接。在传送策略文件之前,服务器应等待 <policy-file-request />
  • 通过常规连接在不同端口上提供策略文件,在这种情况下,可以在专用策略文件端口上建立了连接之后立刻发送策略文件。

服务器必须在关闭连接前发送一个空字节以终止策略文件。如果服务器不关闭连接,则 Flash Player 将在接收到结束空字节时关闭连接。

XML 套接字服务器提供的策略文件具有与其它策略文件相同的语法,只是它还必须指定授予访问权限的端口。允许的端口在 <allow-access-from> 标签中的 to-ports 属性中指定。如果策略文件的端口低于 1024,则它可以给任何端口授予访问权限;如果策略文件来自端口 1024 或更高端口,则它只能给高于 1024 的其它端口授予访问权限。允许使用单端口号、端口范围和通配符。下面的代码是一个 XMLSocket 策略文件的示例:

<<cross-domain-policy>><<allow-access-from domain="*" to-ports="507" />><<allow-access-from domain="*.adobe.com" to-ports="507,516" />><<allow-access-from domain="*.helpexamples.com" to-ports="516-523" />><<allow-access-from domain="www.adobe.com" to-ports="507,516-523" />><<allow-access-from domain="www.helpexamples.com" to-ports="*" />><</cross-domain-policy>>

因为连接到 1024 以下的端口的能力是 Flash Player 7 (7.0.19.0) 和更高版本中的新功能,因此即使 SWF 文件连接到它自己的子域,也总是需要使用通过 loadPolicyFile 加载的策略文件来进行授权。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Flash XMLSocket 通信问题总结
(转)flash的Socket通讯沙箱和安全策略问题
Adobe Flash CS4 安装教程
如何给 FLASH 加上超链接
Adobe Flash CS5视频教程
绿色软件更新中……
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服