`

FLASH的策略文件请求

    博客分类:
  • flex
阅读更多

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/>\0 “另一方面监听返回的安全策略。安全策略接收成功后, FlashPlayer 就断开验证的 Socket ,然后再运行程序本身的 Socket 。在整个 SWF 运行期间,无论你请求多少次,只要域相同, FlashPlayer 就只验证一次。这里有两个重点:

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

     上面提供了三种方式处理安全策略。其实处理的办法差不多一样,就是要求服务端监听一个端口,如果客户端发来“ <policy-file-request/>\0 “请求,服务端就要返回你的安全策略的字符串。

策略文件两种格式

1、针对web应用的策略文件

<?xml version=”1.0″?>
<cross-domain-policy>
<allow-access-from domain=”*.endenvoy.com” />
<allow-access-from domain=”192.168.1.200″ />
</cross-domain-policy>

2、针对Socket的策略文件

<cross-domain-policy>
<allow-access-from domain=”*” to-ports=”507″ />
<allow-access-from domain=”*.example.com” to-ports=”507,516″ />
<allow-access-from domain=”*.example2.com” to-ports=”516-523″ />
<allow-access-from domain=”www.example2.com” to-ports=”507,516-523″ />
<allow-access-from domain=”www.example3.com” to-ports=”*” />
</cross-domain-policy>

其实如果你只是想让你的程序正常运行,可以直接写成<allow-access-from domain=”*” to-ports=”*” />这样就什么都能访问了。

套接字策略文件的介绍:http://www.java1995.cn/blog/item/249


分享到:
评论

相关推荐

    nodejs-flash-socket-policy:一个简单的 node.js 闪存套接字策略服务器

    nodejs 闪存套接字策略... 这很有用,因此服务器端应用程序不需要处理策略请求。 在大多数 unix 环境中,低于 1000 的端口将需要 root 权限。 Adobe 的套接字策略默认使用端口 843。您可以使用 sudo 来运行此脚本。

    HTML5中使用postMessage实现Ajax跨域请求的方法

    由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等。 常规的几种解决方法: (1) document.domain+iframe;...假如使用phonegap开发,就可以将请求文件安装在客户端

    FlashSec:存储库旨在编译可在渗透测试期间使用的脚本和工具,以评估不同闪存相关场景的安全性

    Crossdomain.mxml:用 FLEX 编写的脚本,利用宽松的跨域 Flash 策略文件向目标网站发出任意请求。 要编译,只需下载 FLEX SDK(可从)并运行mxmlc : $ ./mxmlc Crossdomain.mxml Loading configuration file C:\...

    应用控制的Web服务器磁盘缓冲方法 (2007年)

    这样,服务器可在用户空间控制文件缓冲,从而准确判断文件是否在缓冲之中,并依此来调度请求,以提高处理器和磁盘的I/O并行度。同时,服务器可采用适应自身特点的缓冲和预读策略,以提高缓冲的命中率。作为示例,将...

    ActionScript开发人员指南中文版

    使用SQL数据库的策略 第章:使用字节数组 读取并写入ByteArray ByteArray示例:读取zip文件 第章:网络和通信基础知识 网络接口 网络连接更改 域名系统(DNS)记录 第章:套接字 TCP套接字 UDP套接字(AIR) IPv地址 第章:...

    Fuzzing_模糊测试--强制性安全漏洞发掘

    21.3 定制模糊器的实例研究:SHOCKWAVE FLASH 21.3.1 SWF文件的建模 21.3.2 生成有效的数据 21.3.3 对环境进行模糊测试 21.3.4 测试方法 21.4模糊测试框架SULLEY 21.4.1 SULLEY目录结构 21.4.2 数据表示 21.4.3 会话...

    flex3的cookbook书籍完整版dpf(包含目录)

    添加SOAP头到WebSerice请求 18.11节. 解析WeBService的返回的SOAP响应 18.12节. 使用SecureAMFChannel进行AMF的安全通信 18.13节. 通过二进制Socket发送和接收二进制数据 18.14节. XMLSocket通信 第十九章. XML(607...

    asp.net知识库

    帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...

    傲游浏览器v3.3.6.2000 [2012-3-22]

    * 单击"浏览"打开资源管理器定位到文件,再点一下"浏览"却无法定位 * 下载对话框偶尔显示异常 [插件平台] * 扩展标签页切换时不能更新标题和地址栏 3.3.6.600_Beta 2012-03-08 本次更新包含下列新特性: + ...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    13.2 迭代I2:探索内容的翻译策略 149 第14章 任务T:测试 151 14.1 加上测试 151 14.2 模型的单元测试 152 14.3 控制器的功能测试 161 14.4 应用程序的集成测试 175 14.5 性能测试 181 14.6 使用Mock对象 184 第3...

    asoft签到管理系统tykq3.5_build20110125

    6、无法使用视频签到,看不到图像 : 进入 C:\windows\system32\macromed\flash\mms.cfg 这个进程,不要搜索,要手动,因为C盘把这些设为自动隐藏文件,然后删除mms.cfg,重启。 【第一次登录使用】 全新安装和...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    4.2 页面自适应策略 24 4.2.1设备自适应 24 4.2.2.浏览器自适应 25 4.3 模块实现 25 4.3.1根据适口属性设计响应式布局: 26 4.3.2同分辨率范围内的流式布局设计 26 4.3.3移动端viewport属性设定 27 4.3.4组件样式的...

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

Global site tag (gtag.js) - Google Analytics