解决Flex/Flash跨域访问出现的安全沙箱问题
flash里有着著名的安全沙箱机制,我们需要用flash实现跨域访问远程URL时,会遇到下面几种相关的安全沙箱问题:
问题1:
Flash/Flex,会涉及到跨域访问URL的安全性问题,最常见的就是出现" 访问URL时遇到安全性错误",这也是人们以前常说的安全沙箱问题,解决方案是在目标域名根目录加入跨域策略文件crossdomain.xml,例如:
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*.techmango.com" /> </cross-domain-policy>
这表示目标源允许*.techmango.com下的资源访问该域名下的资源.
问题2:
如果涉及到Socket,跨域策略文件中需要加入to-ports,例如:
<cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.example.com" to-ports="509,516" /> <allow-access-from domain="*.example1.com" to-ports="517-521" /> </cross-domain-policy> 这个策略文件是指定允许哪些域的主机通过那些端口链接.
问题3:
如果在访问Webservice需要用到SOAPHeader验证,跨域策略文件做相应修改,例 如:
<cross-domain-policy>
<allow-access-from domain="*.chenfeisoft.com" />
<allow-http-request-headers-from domain="*.techmango.com" headers="*"/>
</cross-domain-policy>
否则会出现DefaultHTTP错误.
问题4:
跨域访问第三方组件提供的数据,如BlazeDS,也会遇到DefaultHTTP错误.这需要服务器及UI端做相应配置,例如:
[Service端]
在服务器端的配置文件中,找到proxy-config.xml文件,里面有一个默认的destination节点: <destination id="DefaultHTTP"> </destination>
默认代理的destination将转向客户端指定的URL进行请求。首先你必须使用dynamic-url属性来指定允 许代理的destinations.如下:
把你要访问的URL都配置到dynamic-url节点里。
<destination id="DefaultHTTP">
<properties>
<dynamic-url>http://cnn.com/*</dynamic-url>
<dynamic-url>http://news.yahoo.com/*</dynamic-url>
</properties>
</destination>
修改后,保存。
[UI端]:
为了Flex应用能够访问代理服务,要确保你的应用程序指向正确的service,并设置useProxy 属性为ture.如:
<mx:HTTPService url=”http://cnn.com” useProxy=”true” />
<mx:WebService url=”http://cnn.com/api?wsdl” useProxy=”true” />
编译UI,重新部署。若不能正常读取RSS的信息,检查是否设置了channelSet; channelSet 是HTTPService的属性,一定要设置。一般来讲HTTPService和RemoteObjcet的channelSet是一样的。
转载于:https://www.cnblogs.com/techmango/archive/2011/05/20/Solve_Flex_access_URL_encounter_security_error.html
解决Flex/Flash跨域访问出现的安全沙箱问题相关推荐
- vb跨域访问ajax,解决AJAX的跨域访问-两种有效示例
这篇文章主要为大家详细介绍了解决AJAX的跨域访问-两种有效示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!新的W3C策略实现了HTTP跨域访问,还 ...
- 利用代理页面解决html iframe跨域访问网站问题
原文:利用代理页面解决html iframe跨域访问网站问题 源代码下载地址: http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到 ...
- flash跨域访问解决办法
今天一个客户的flash程序突然无法访问到数据,经过检查发现当时做flash时,对访问的数据使用了域名方式访问,但是现在客户又绑定了另一个域名,所以另一个域名访问时就造成了跨域访问,由于flash采用 ...
- Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法
当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示 XMLHttpRequest cannot load http://xxxxxx. Origin http://xxxxxx ...
- ASP.NET解决PDF.js跨域访问问题
PDF.js在访问pdf文件的时候,有时候会涉及到跨域问题,介绍一种.NET和PDF.js配合使用的方法. 前端代码: <script type="text/javascript&qu ...
- flash 跨域访问
原理: flash访问另一个域的数据,flash player 会自动从该域加载策略文件(crossdomain.xml),如果访问的数据所在的域名在策略文件中设置过允许访问,则该域的数据即可正常访问 ...
- 解决 js ajax跨域访问报“No 'Access-Control-Allow-Origin' header is present on the requested resource.”错误
https://blog.csdn.net/CNYYGJ/article/details/68489200
- 关于flex开发中的跨域访问问题
1,一次偶然的机会碰到这个问题了,flex有跨域访问问题,但是,imgage.soure='其它域名地址是可以的'.能显示出来,为什么? 不是说有跨越访问的问题么,其实flash说的跨域访问问题,不是 ...
- ssm项目解决AJAX跨域,ssm项目跨域访问
最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域.跨域的解决方法很多,我采用的是最简单的一种,代码如下: 新建一个过滤器 ...
最新文章
- mysql需要备份的数据_Mysql根据需要备份数据
- 排序算法7---快速排序算法
- python的_thread模块来实现多线程(python核心编程例子)
- 终于弄明白 i = i++和 i = ++i 了
- 创建用户赋权限_MySQL实战第84篇:MySQL数据库添加用户和赋权限,在8.0版本!
- java8 camel_Meet Fabric8:基于Camel和ActiveMQ的开源集成平台
- Java StackTraceElement getClassName()方法与示例
- Perl 日志分析W3A_system
- android+nutz后台如何上传和下载图片
- java jsonfield_fastjson使用-- @JSONField使用(转)
- openGauss 学习环境部署(docker方式),并使用dbeaver进行连接
- 按住 ctrl 并滚动鼠标滚轮才可缩放地图_鼠标永远快不过键盘!32组PS常用快捷键你值得拥有!...
- java爬取国家统计局省市县及编码
- xmapp教程及扩展
- 写给青春,写给军乐团
- 台式计算机可以连接蓝牙吗,蓝牙耳机怎么连接台式电脑?台式电脑连接蓝牙耳机的方法...
- ANN(人工神经网络)基础知识
- 索骥馆-思维训练之最佳记忆方法-王洪礼的奇象记忆思维技术与方法 》扫描版[PDF]
- c语言 以时间做种子的随机数,为什么用时间做种子,随机数还是一样的?
- 电气-接触器与空气开关
热门文章
- 省带宽、耗电小,腾讯游戏学院专家解析手游渲染架构
- JAVA字符串数学公式运算-辅助类-支持浮点数错误纠正-低消耗-高可用性-小数点后面保留16位小数
- SecureCRT的自动登录和自动脚本记录功能图解
- linux系统时间修改及同步
- [19/04/11-星期四] 多线程_并发协作(生产者/消费者模式_2种解决方案(管程法和信号灯法))...
- 2018.07.11 线段树基本模板复习
- (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目
- PHP中oop面向对象基础知识(一)
- Android NDK 环境搭建
- 设计模式3:装饰模式