flash的socket连接安全策略文件

 

最近公司做压力测试的时候,发现了一个问题。flash的socket客户端向服务端请求安全策略文件的时候,服务端负责回发策略文件的端口能连接上,但是没有响应,没有向flash客户端回发任何内容。最终会导致flash客户端加载不到策略文件。
然而,即便是负责回发策略文件的端口恢复正常,能回发策略文件了,flash客户端在不刷新的情况下,仍然无法通过flash的安全机制,和主socket服务端连接。

于是我自己用.net写了个服务端做了比较详尽的测试。
我们的flash客户端原本使用的单一的socket实例,当发现有安全错误以后,会提示客户端重新连接,重连的时候,仍然是调用的原有实例的connect方法。
于是我测试了把客户端改成每次重连的时候,创建新的socket实例。
测试后发现,这样的操作,并不会使flash客户端去重新向提供策略文件服务的端口去做请求。

然后,我做了另外一个测试,当遇到安全错误的时候,重新设置一个新的策略文件对应的端口,看flash是否会像新的端口请求。与此同时,我在服务端做了3个提供安全策略服务的端口。
结果我发现,flash客户端也不会重新向新的端口做任何请求。

翻阅adobe网站关于flash player的buglist,早在一年前,就有人提出了这个问题。
http://bugs.adobe.com/jira/browse/FP-67
不过adobe没有做任何改动。

通过我进一步试验,发现flash客户端在向服务端的安全策略服务提交请求失败以后,会向socket服务的主端口也会去发出一个"<policy-file-request/>\0",并且这个请求是在没有得到安全许可的情况下,每次连接都会发此请求的。
所以只要socket服务的主端口做安全策略的认证,这样就不怕出现,主服务是ok的,但是策略服务出现问题在不刷新浏览器的情况下无法访问主socket服务的问题。

PS:测试还发现一点,一旦flash客户端获得了安全许可,即便我服务端关闭,然后把安全策略服务停掉,再开启服务端,客户端依然能正常连接socket服务端。

可遇不可求的Question之flash的socket连接安全策略文件篇的更多相关文章

  1. 可遇不可求的Question之导入mysql中文乱码解决方法篇

    可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?

  2. 可遇不可求的Question之MySqlClient的Guid 类型的映射篇

    关于 Guid 类型的映射 MySql 没有原生的 Guid 类型,一般使用 binary(16) 或者 char(36) 这两个类型.早期版本的 Connector/Net 将 binary(16) ...

  3. 可遇不可求的Question之INSERT … ON DUPLICATE KEY UPDATE 语法篇

    MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法,使得原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完 ...

  4. 可遇不可求的Question之MySQL系统变量interactive_timeout 与 wait_timeout 篇

    mysql>show variables like '%timeout'; 打印结果如下: +----------------------------+-------+ | Variable_n ...

  5. 可遇不可求的Question之MySql4.0前版本不支持union与批量SQL提交

    批量SQL提交 参考 21.2.6. Connector/NET Connection String Options Reference . Allow Batch true When true, m ...

  6. 可遇不可求的Question之SQLSERVER触发器不支持多行插入操作篇

    描述: 我们经常遇到 insert table_a select * from table_b 这样的语句, 同时在表table_a中根据每一条新增的SQL语句,通过触发器来触发对应的一系列的后续操作 ...

  7. 可遇不可求的Question之Sqlserver2005文件组的迁移篇

    Sqlserver2005 文件组的折腾 问题:由于数据庞大,我在数据库里面使用了分区表,建了很多文件组,一个分区对应一个文件组,一个文件组只有一个文件.我在建分区表的时候,在数据库属性里面“文件”选 ...

  8. 可遇不可求的Question之Mysql在不重启服务的情况下修改运行时变量篇

    比方说在一些实际生产环境中,想改个MYSQL的配置,但是又不想停止服务重起MYSQL,有什么办法呢?使用SET命令可以做到,请看下面几个例子: 1.设置key_buffer_size的大小为10M. ...

  9. 可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇

    error: Failed dependencies: MySQLconflicts   错误提示: error: Failed dependencies:                       ...

随机推荐

  1. JavaWeb——JSTL 核心标签库使用

    JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...

  2. html 设置input框的记忆功能(联想内容)

    autocomplete=“on/off” 1.默认情况下,autocomplete的值是on.你可以将其设置为off. 2.autocomplete属性可以放在input 元素上,也可以放在form ...

  3. spring mvc 自动生成代码

    generator mybaits 详细配置: 目录结构 执行命令 OK git:https://gitee.com/xxoo0_297/generator.git

  4. Selenium IDE录制脚本时弹出窗口的完美处理

    很多朋友录制脚本时新打开弹出窗口后无法定位元素,我也遇到同样的问题,国内没有什么好的资料,于是就阅读英文,不断尝试,感觉那个selectWindow(title)什么就是个坑,我用这种方法成功处理后得 ...

  5. 4-29 c语言之栈,队列,双向链表

    今天学习了数据结构中栈,队列的知识 相对于单链表来说,栈和队列就是添加的方式不同,队列就相当于排队,先排队的先出来(FIFO),而栈就相当于弹夹,先压进去的子弹后出来(FILO). 首先看一下栈(St ...

  6. GIT TEAMWORK

    Learn GIT TEAMWORK generalizations Congratulations, you now know enough to start collaborating on Gi ...

  7. 通过jquery 获取用户当前所在的城市名称和IP地址

    下面这段JS代码是通过jquery 结合新浪IP地址库和QQip地址库接口获取用户当前所在的城市(省份)名称. 用户当前IP地址等数据.其中当前IP是通过 QQip地址库接口获取,其他数据都是通过 新 ...

  8. 《Spring_Four》第一次作业:团队亮相

    part one: 1.队名:Spring_Four 2.团队成员组成:学号/姓名(标记团队组长) 201571030114 李蕾 201571030143 周甜甜 201571030139 张天旭( ...

  9. C语言实现的反转字符串

    这段代码大约是10年前写的了,一直收藏在自己的代码仓库里面,贴出来分享下. 网上也有很多类似的代码,学生们用的比较多,工作中用的很少,权做参考. char* ReverseString(char* s ...

  10. asp.net文件/大文件上传需要配置的项目整理

    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 最可能的原因: •Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值. 可尝 ...