`
nianshi
  • 浏览: 416193 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex安全沙箱问题的解决

    博客分类:
  • Flex
阅读更多



最近遇到了flex 的安全沙箱问题,找了很多资料发现不是都是和我,我的程序需要socket连接,而大多数讲的都是跨域文件读取的。我先把两种方法都总结出来:

跨域文件读取

方法一:在目标服务器上布署crossdomain.xml文件(我用的此方法很管用,放上就没问题了) 需要远程服务根目录定义有crossdomain.xml文件,如下:

<?xml version="1.0" encoding="UTF-8" ?> <cross-domain-policy>     <allow-access-from domain="*"/> </cross-domain-policy>

方法二:使用代理,把Flex要访问的远程文件通过asp, php, jsp等脚本读取到本地,然后再由Flex去访问;

方法三:使用Adobe flash player 9 打开程序后,点击菜单栏中文件->创建播放器...即生成exe文件,运行exe文件即可突破安全限制;

方法四:     1、找到这个文件夹:c:\Documents and Settings\<UserName>\Application         Data\Macromedia\Flash Player\#Security     2、在其下建立一个名为"FlashPlayerTrust"的文件夹     3、在"FlashPlayerTrust"文件夹下新建一TXT文件,内容如下:         c:\         d:\         e:\         f:\     4、将该txt文件命名为:"myTrustFiles.cfg"     再打开你硬盘里的SWF文件,就不会出现那个烦人的安全设置提示窗口了!

方法五: 用HttpService它默认是有Proxy的,需要配置flex-config.xml,里面有一段: <http-service-proxy>      <whitelist>         ………………     </whitelist> </http-service-proxy>

这个是白名单,一般情况下是注释掉的,也就是默认只有本地的http://{localserver}/* 和https://{localserver}/*可以访问。其他 的需要在flex-config.xml里的自行修改成需要的就可以了。

访问本地自然不会跨域,不过你肯定访问局域网其他机器了,所以是依照白名单规则,属于跨域

Socket沙箱问题

在 Flex中使用Socket进行通信时,也会受到Flash9的新安全策略的困扰. 解决方法不能像在Web服务器中布置一个crossdomain.xml来解决,或是在服务器上专门开启843端口来提供安全策略. 有一种方法就是在接收到客户端的连接后,向其发送 安全策略.

比如我是用JAVA来开发, 客户端的Flex会先搜索同域,及服务器的843口,看是否能得到安全策略,这时候Socket是先建立好的,可以在接收到Socket ,即Accept事件发生是,马上向其发送 策略串,否则客户端就会因为安全策略不过关,于断开, 如果成功获取策略,则客户端将断掉先前的那次Socket, 再真正进行程序中你要求的Socket连接请求.

下面看看我找的例子吧!

public void run() {
ServerSocket ss;
String ip = "";
try {
ip = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e1) {
e1.printStackTrace();
}
String xml = "<cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/>";
xml = xml + "<allow-access-from domain=\"" + ip + "\" to-ports=\"1234\" />";
xml = xml + "</cross-domain-policy>";

try {
ss = new ServerSocket(port);
while (!cancle) {
Socket s = ss.accept();

BufferedReader br = new BufferedReader(new InputStreamReader(s
.getInputStream(), "UTF-8"));
PrintWriter pw = new PrintWriter(s.getOutputStream());
char[] by = new char[22];
br.read(by, 0, 22);
String head = new String(by);
                                     //判断是不是第一求请求连接的安全验证,当客户端连socket时,as3会自动向服务端发送<policy-file-request />这个字符串请求返回策略文件,所以当服务器收到这个串后给client返回就好了。
                                           //如果是返回xML信息
if (head.equals("<policy-file-request/>")) {
System.out.println("连接服务器");
pw.print(xml + "\0");
pw.flush();
br.close();
pw.close();
} else {
               //你自己的正常请求处理逻辑
}

}
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
分享到:
评论

相关推荐

    FLEX安全沙箱实用指南

    ### FLEX安全沙箱实用指南 #### 一、引言 在进行FLEX开发时,了解和掌握FLEX的安全沙箱机制对于确保应用程序的安全性至关重要。本文将详细介绍FLEX安全沙箱的相关概念及其应用场景,帮助开发者更好地理解如何在...

    Flex 安全沙箱问题 简单处理方法

    Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。

    ArcGIS API for Flex开发WebGIS中的安全沙箱问题

    在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...

    电信设备-克服flex安全沙箱限制的视频像素信息采集存储的方法.zip

    "克服flex安全沙箱限制的视频像素信息采集存储的方法"是一个关键的技术议题,主要涉及的是如何在受到Adobe Flex安全沙箱限制的环境中有效地获取和存储视频帧的像素数据。Flex是一种基于ActionScript 3的开放源代码...

    flex 沙箱安全问题

    ### flex沙箱安全问题 #### 一、概述 在Flex应用程序开发过程中,远程对象(RemoteObject)服务常常被用于客户端与服务器之间的数据交互。但在实际应用中,由于跨域策略的限制,可能会遇到Error #2048这样的错误...

    源于FLEX中的安全沙箱问题

    【标题】:“源于FLEX中的安全沙箱问题” 【描述】:在FLASH PLAYER中,安全沙箱是一个关键的安全性组件,它将资源逻辑地分组,以限制各个FLASH应用程序能够执行的操作和访问的资源。安全沙箱确保了各应用程序与...

    flex 安全沙箱问题备忘

    Flex安全沙箱是Adobe Flex应用程序在运行时用以确保安全的机制,其通过将应用程序限制在特定的运行环境内,防止恶意软件和代码对用户系统造成损害。在Flex中,沙箱主要分为三类:本地沙箱、本地信任沙箱、远程沙箱。...

    在Flex中发布地图 程序报错 SecurityError: Error #2048: 安全沙箱冲突,只需要下载添加这个就可以

    网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...

    flex本地安全域设置

    本篇将详细介绍如何通过“flex本地安全域设置”来解决Flex安全沙箱的问题,以及为何无需到Adobe官网设置全局安全域。 1. **Flex安全沙箱**:Flex应用运行在两种安全沙箱中,分别是“本地trusted”和“网络sandbox”...

    ActionScript 3.0安全沙箱及相关问题资料

    《Flex与.NET基于Socket的网络连接 收藏 .txt》和《Flex flash_player9 沙箱安全解决方案.txt》可能讨论了Flex应用程序与.NET服务通过Socket通信时如何处理安全沙箱问题,以及在Flash Player 9中如何解决这些问题的...

    flex安全机制详解

    ### Flex安全机制详解 #### 一、Flex安全机制概述 Flex是一种用于构建高效且美观的Web应用程序的技术,它能够提供丰富的用户体验。为了确保安全性,Flex采用了一套完整的安全机制来控制不同域之间的通信,其中包括...

    lex for arcgis java tomcat环境不能跨域问题 (安全沙箱问题2048

    重启Tomcat服务器后,这个配置应该生效,允许来自任何域的请求访问ArcGIS Server的资源,从而解决“安全沙箱问题2048”。 值得注意的是,允许所有域(`*"/&gt;`)虽然方便,但这也带来了安全性问题,因为它允许任何...

    Flash加载swf文件的沙箱问题

    总之,Flash加载SWF文件的沙箱问题涉及到安全性和权限管理,理解并妥善处理这些问题对于创建安全且功能完备的Flash应用至关重要。开发者需要掌握如何适当地调整沙箱策略,同时注意不要过度放宽权限,以保护用户的...

    flex PDF导出分页

    当Flex应用尝试导出PDF并涉及到跨域数据时,可能会遇到安全沙箱问题,即使配置了`crossdomain.xml`文件,也可能无法完全解决这个问题。 为了解决这个问题,开发者可能采用了替代方法,如使用不受沙箱限制的库或者...

    FLEX+Delphi,FLEX+Java,FLEX+C# 的聊天室

    客户端说明 chat.mxml socket.connect("127.0.0.1",8888);...FLEX+Java,FLEX+C#,FLEX+C++ &lt;br&gt;把swf放到网站上去,会出现安全沙箱问题没有解决,如果你解决了请告诉我(email:feng0904@163.com),谢谢

    Flex_RPC错误大全

    - **问题分析**:使用默认终端代理时遇到的安全沙箱冲突,解决方法包括修改安全策略文件或更改目标destination以允许所需的URL。 #### 4. No destination with id XXX registered 错误信息:...

    Pro Flex On Spring

    这可能包括对Flex应用的沙箱模式的讨论,以及如何通过Spring Security来保护后端资源。 此外,随着云计算和微服务架构的兴起,Flex和Spring的集成也可能需要适应这些趋势。例如,如何将Spring应用容器化和在云环境...

    Flex与Java通信

    9. **安全沙箱**:跨域问题在Flex与Java通信中也需要注意。在Tomcat的`\webapps\ROOT`目录下添加`crossdomain.xml`文件,允许来自任何域名的访问,以解决安全沙箱限制。 总结起来,实现Flex与Java通信涉及多个步骤...

    flex&flash相互调用

    - 调用过程中可能遇到的错误包括:找不到方法、安全沙箱限制、版本不兼容等,需要仔细调试和解决。 - Flash内容在HTML页面中嵌入后,需要正确设置SWFObject参数,以便Flex可以正确识别和调用。 4. **源码分析**:...

    flex与flash的交互

    4. **数据共享**:在Flex和Flash之间共享数据是常见的需求,可以使用`LocalConnection`类创建本地连接对象,实现不同沙箱(即安全域)之间的数据传递。 5. **资源共享**:如果Flash内容需要访问Flex应用中的资源,...

Global site tag (gtag.js) - Google Analytics