千家信息网

FlexSocket安全沙箱冲突怎么处理

发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,小编给大家分享一下FlexSocket安全沙箱冲突怎么处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!FlexSocke
千家信息网最后更新 2025年11月18日FlexSocket安全沙箱冲突怎么处理

小编给大家分享一下FlexSocket安全沙箱冲突怎么处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

FlexSocket安全沙箱冲突及解决方案

这是FP被广为唾骂的特性之一,其设计糟糕至极。Adobe貌似认为9秒时间对用户来说很短。

1,糟糕的设计可能使用户浪费9秒时间

FlexSocket连接SocketServer时,javaSocket、c++Socket,抑或其它,首先会开一个Socket连接主机的843端口请求安全策略文件,这个时间为3秒;如果此步未能成功,则看开发者是否显式调用了Security.loadPolicyFileAPI,如下

Security.loadPolicyFile("xmlsocket://127.0.0.1:1843");

如有,则再次尝试从这个端口加载策略数据,又是3秒。如果此步又未能OK,则尝试从开发者定义的FlexSocket主机端口再次加载安全策略,此时会发送这样一个请求:

如果SocketServer没有处理这个请求,客户端将无法进一步完成FlexSocket连接。这个过程又是3秒。如果软件设计不当,客户端将浪费9秒的时间才能知道它有没有获得Server的连接许可,这张门票有点贵了。FP如能成功加载到安全策略数据,会把所用socket抛弃(即使从主机端口请求亦是如此),然后执行开发者的socket连接逻辑。

2,合理的方案,用java实现

在SocketServer端单开一个843端口,用于专门向客户端提供安全策略文件,java示例代码如下:

packagesban.socketServer;   importjava.io.BufferedInputStream;  importjava.io.BufferedReader;  importjava.io.File;  importjava.io.FileInputStream;  importjava.io.IOException;  importjava.io.InputStreamReader;  importjava.io.PrintWriter;  importjava.net.InetSocketAddress;  importjava.net.ServerSocket;  importjava.net.Socket;  importjava.net.SocketAddress;  importjava.net.URL;   /**  *sbanpolicyserverforflex/flashsocket  *  *@authorsban *  */  publicclassSbanSocketPolicyServer{   publicSbanSocketPolicyServer(){    }    publicstaticStringreadFileAsString(Stringurl)     throwsjava.io.IOException{    byte[]buffer=newbyte[(int)newFile(url).length()];    BufferedInputStreamf=newBufferedInputStream(      newFileInputStream(url));    f.read(buffer);    f.close();    returnnewString(buffer);   }    publicstaticvoidmain(String[]args)throwsIOException{    ServerSocketserver=newServerSocket();    SocketAddressendpoint=newInetSocketAddress("127.0.0.1",843);    server.bind(endpoint);    Stringpath=SbanSocketPolicyServer.class.getResource("../../crossdomain.xml").getPath();    System.out.println(path);    Stringpolicy=readFileAsString(path);     while(true){     System.out.println("waitforclient...");     Socketsocket=server.accept();      BufferedReaderin=newBufferedReader(newInputStreamReader(       socket.getInputStream()));     PrintWriterout=newPrintWriter(socket.getOutputStream());     Strings=in.readLine();     System.out.println(s);      if(s.indexOf("policy-file-request")>-1){      out.print(policy+'\0');      out.flush();      in.close();      out.close();      System.out.println("sendedpolicycontext.");      socket.close();     }    }    }  }

而crossdomain.xml文件的示例代码为:

   

将crossdomain.xml文件与执行文件放置一起

3,你可以借用的jar执行文件

sban把上述java导出为jar可执行文件:

SbanSocketPolicyServer.zip5.8KB

在Windows下,确定已安装java环境,并已设定环境变量,在命令行窗口中执行如下命令:

java-jarSbanSocketPolicyServer.jar

说明:该java程序未经优化,仅作为教程示例,不建议在商业项目中使用。

以上是"FlexSocket安全沙箱冲突怎么处理"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

安全 文件 端口 策略 时间 沙箱 冲突 处理 主机 客户 客户端 开发者 示例 篇文章 开发 设计 糟糕 成功 代码 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何查找一个软件的数据库 网络安全平台龙头 一对一交友app软件开发搭建 信得过的网络安全零信任安全 网易互联网科技公司 如何查看系统数据库的位数 软件开发哪家品质好 ps4战地1服务器 耒阳软件开发联系电话 体验服连接服务器失败 学校网络安全宣传计划 网络安全人才证书 上海卓讯网络技术有限公司 北京服务器搬迁收费标准 最简单的mysql数据库是哪个 网络安全是什么安全的一部分 重庆品质软件开发服务检测中心 浅析公共资源交易网络技术 怎样把网页放到服务器上 如何配置数据库的连接 数据库管理员应该怎么做 网络安全全我们该怎么做 解散软件开发技术团队 服务器硬盘灯闪的很快 网络技术推动商品交易 sql ser附加数据库 数据库的密码重新修改或清空 软件开发成果增质财务如何处理 查看数据库定义信息的sql语句 模拟山羊手机版怎么开服务器
0