惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
J
Java Code Geeks
博客园 - 聂微东
B
Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
腾讯CDC
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
美团技术团队
博客园 - Franky
Google DeepMind News
Google DeepMind News
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
The Cloudflare Blog

博客园 - 林石

[转].NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别 .NET工行E生活接入AES加密算法的吐槽-2018 [转]MYSQL性能查看(命中率,慢查询) 可遇不可求的Question之MySql4.0前版本不支持union与批量SQL提交 Cookie的几点忠告 可遇不可求的Question之MySqlClient的Guid 类型的映射篇 可遇不可求的Question之SQLSERVER触发器不支持多行插入操作篇 可遇不可求的Question之Sqlserver2005文件组的迁移篇 可遇不可求的Question之INSERT … ON DUPLICATE KEY UPDATE 语法篇 可遇不可求的Question之Mysql在不重启服务的情况下修改运行时变量篇 可遇不可求的Question之MySQL系统变量interactive_timeout 与 wait_timeout 篇 可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇 可遇不可求的Question之导入mysql中文乱码解决方法篇 Codesmith怎么判断sqlserver数据库字段是不是标识自增字段 可遇不可求的Question之skip-name-resolve模式篇 MySQL Error Codes MYSQL的错误代码 [转]如何成为强大的程序员? 可遇不可求的Question之Silverlight完美加密工具deepsea篇 可遇不可求的Question之反序列化时出现“base-64 字符数组的无效长度”错误提示篇
可遇不可求的Question之flash的socket连接安全策略文件篇
林石 · 2017-03-09 · via 博客园 - 林石

最近公司做压力测试的时候,发现了一个问题。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服务端。