浅谈Flash Socket通信安全沙箱
来源:互联网 发布:单片机模块化编程pdf 编辑:程序博客网 时间:2024/05/10 09:08
用过Flash socket的同学都知道,Flash socket通讯有安全沙箱问题。就是在Flash Player发起socket通信时,会向服务端获取安全策略,如果得不到服务端响应,flash将无法连接到服务端。
首先,什么是Flash安全沙箱?
Flash安全沙箱是Flash Socket的一种安全策略,为避免任意Flash终端与目标主机建立Socket通讯,以授权端口,域名方式限定连接。
那么,Flash Player怎么获取Socket策略?
Flash Player发起socket通信请求的时候会先连接服务器端的843端口,获取Socket策略。当服务器没有开启843端口的时候,Flash Player会检查发起请求的flash程序中有没有使用Security.loadPolicyFile来加载Socket策略,如果还是没有就会看这个发起请求的连接的目标端口有没有Socket策略。如果都没有,那么Flash Player将触发连接失败的Socket事件,即SecurityErrorEvent.SECURITY_ERROR。
备注一下,Security.loadPolicyFile的用法为:Security.loadPolicyFile("xmlsocket://127.0.0.1:8080");
再来看看Socket策略的格式
1、以下是最简单的Socket策略,就是不做任何限制的:
- <cross-domain-policy>
- <allow-access-from domain="*" to-ports="*"/>
- </cross-domain-policy>
- <cross-domain-policy>
- <allow-access-from domain="*.example.com" />
- <allow-access-from domain="192.168.5.110" />
- </cross-domain-policy>
- <cross-domain-policy>
- <allow-access-from domain="*" to-ports="507" />
- <allow-access-from domain="*.example.com" to-ports="507,516" />
- <allow-access-from domain="*.example.com" to-ports="516-523" />
- <allow-access-from domain="www.example.com" to-ports="507,516-523" />
- </cross-domain-policy>
看一下这个示例:
- <?xml version="1.0"?>
- <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
- <cross-domain-policy>
- <site-control permitted-cross-domain-policies="master-only"/>
- <allow-access-from domain="swf.example.com" to-ports="123,456-458" />
- </cross-domain-policy>
最后,再来看下Flash Player获取Socket策略时发什么请求信息给服务端?
Flash Player发起socket连接请求会向服务端发23字节的字符数据:<policy-file-request/>
细心的同学会观察到,<policy-file-request/>只有22字节,怎么还多了1个字节呢?
这里有一点要注意,<policy-file-request/>后面还多带了一个NULL 的字节数据。
参考:
http://blog.csdn.net/mycwq/article/details/24675773
http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html
- 浅谈Flash Socket通信安全沙箱
- 浅谈Flash Socket通信安全沙箱
- flash连接socket的安全沙箱问题解决
- flash socket通讯安全沙箱问题解决(附带案例)
- C++与flash通信安全沙箱问题
- flex与socket通信之成功----之成功补充篇(关于C#建立FLASH服务端的安全沙箱问题)
- 关于Flex\AS3 Socket 通信 安全沙箱的问题
- flash socket通信问题
- Flash Socket网络通信
- python版的flash socket 843安全认证服务(沙箱安全配置信息的传输)
- flash安全沙箱
- 浅谈Socket通信
- Socket网络通信安全
- flex flash socket通信实例
- Flash Socket通信的安全策略
- java flash 安全沙箱
- Flash安全沙箱调研
- Flash的安全沙箱
- 命名规范
- JQuery 的eq和get方法的区别
- <cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑
- docker核心技术预览
- ServiceStack.Redis之IRedisClient(3)
- 浅谈Flash Socket通信安全沙箱
- C#索引器
- 快速幂
- Android Drawable 那些不为人知的高效用法
- 核电站问题---记忆化搜索
- OS X,iOS 与 Linux 的漏洞均多于 Windows
- POJ 3613Cow Relays( floyd 倍增法)
- Redis常用命令速查 <第二篇>
- androi样式,全屏,去标题什么的