加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex Socket安全策略<policy-file-request/>及应对方法

发布时间:2020-12-15 01:14:14 所属栏目:百科 来源:网络整理
导读:? Flex Socket安全策略policy-file-request/及应对方法 2010-05-26 10:11 在 Adobe Flash Player 升级到 9.0.124 后,由于安全策略更改,原来 Socket 或 XmlSocket 的应用里的 http 方式加载安全策略的手段不能继续使用。更改如下: 1,首先检测目标服务器的
?
Flex Socket安全策略<policy-file-request/>及应对方法
2010-05-26 10:11
在 Adobe Flash Player 升级到 9.0.124 后,由于安全策略更改,原来 Socket 或 XmlSocket 的应用里的 http 方式加载安全策略的手段不能继续使用。更改如下:


1,首先检测目标服务器的 843 端口是否提供安全策略

2,如果 1 没有检测到策略,则检测 actionscript 是否使用了 Security.loadPolicyFile(xmlsocket://)手段提供安全策略,如果还没检测到,则使用第 3 步检测
3,检测目标服务器目标端口是否提供安全策略。



在说具体处理方式前,我先描述一下 Flash Player 的验证过程。在 Flex 程序发出 Socket 或 XmlSocket( 以下统称为 Socket) 请求前, FlashPlayer 会先判断是否为本地调用,如果不是。即用一个 Socket 去链接到你的服务端,三次握手成功后一方面发出字符串“ <policy-file-request/> “另一方面监听返回的安全策略。安全策略接收成功后, FlashPlayer 就断开验证的 Socket ,然后再运行程序本身的 Socket 。在整个 SWF 运行期间,无论你请求多少次,只要域相同, FlashPlayer 就只验证一次。这里有两个重点:

第一个是验证的 Socket 和程序的 Socket 是两个 Socket 。所以你在本地测试时,服务端监听到 N 个 Socket 请求,但布置到服务端后,服务端会监听到 N+1 个请求。
第二是验证的 Socket 发送“ <policy-file-request/> “请求和接收你的策略文件是没有先后关系的,所以你没必要接收完“ <policy-file-request/> “后才发策略文件。我的做法是只要监听到请求,就把策略字符串发过去。


在Java中,我处理的方法是独立启动一个843端口的服务专门监听授权请求,这样客户端响应速度很快,代码片段如下:
String xml = "<?xml version="1.0"?><cross-domain-policy><site-control permitted-cross-domain-policies="all"/><allow-access-from domain="*" to-ports="*"/></cross-domain-policy>"; Socket socket=serverSocket.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(socket .getInputStream(),"UTF-8")); PrintWriter pw = new PrintWriter(socket.getOutputStream()); char[] by = new char[22]; br.read(by,22); String s = new String(by); System.out.println("s="+s); if (s.equals("<policy-file-request/>")) { System.out.println("接收policy-file-request"); pw.print(xml); pw.flush(); br.close(); pw.close(); socket.close(); } 另外,一定要注意 xml 字符串后面的 ”” ,因为 Flash Player 是用他来做分隔符的,如果你不加上,客户端验证 socket 可能就一直等待。另外授权接收的socket一定要断开。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读