flash开发中的几个安全问题
2014-01-13 10:53
148 查看
一,Security.allowDomain
若没必要,建议不要使用Security.allowDomain,Security.allowDomain允许网站A的swf文件跨域调用网站B的swf文件的对象和变量,启用该函数的时候可能被其他网站调用,
导致安全问题。如果一定要使用该函数,请务必对允许的域名进行白名单限制,并对数据来源进行校验。
例如:域名a.com下的flash文件-a.swf,域名b.com下的flash文件-b.swf,则为了防止被a.swf调用,则b.swf需要禁止Security.allowDomain。
二,Security.allowInsecureDomain
Security.allowInsecureDomain允许网站A的swf文件跨协议(http可调用https站点信息)跨域调用网站B的swf文件的对象和变量,启用该函数的时候可能被其他网站调用,导致安全问题。
因此,建议禁止。
三,crossdomain.xml
crossdomain.xml文件放到http://rootdomain/crossdomain.xml,用于指定该域名下的资源(图片,flash,页面内容等)是否允许远程的flash加载。如果配置不当,可能带来CSRF等攻击。
安全配置示例
1、对于不需要外部加载资源的网站,可以删除crossdomain.xml。
2、crossdomain.xml中更改allow-access-from的domain属性为允许的域名白名单,通常应限制在允许域名的子域下。如:
http://cb.qq.com/crossdomain.xml的配置:
<cross-domain-policy>
<allow-access-from domain="act.cb.qq.com"/>
<allow-access-from domain="cb.qq.com"/>
<allow-access-from domain="*.qq.com" secure="false"/>
</cross-domain-policy>
四,禁止把敏感信息存储到flash shareobject
shareObject可以将信息(类似cookie)存储在本地用户硬盘上(以WIN 7为例:C:\Users\[你的用户名]\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\[随机八位字符]\[域]\[进行存储控制的文件的路径,直到swf文件名]\)的文件。
如果文件中存有用户或业务的敏感信息,将造成安全问题。注意:目前该文件的加密已经被破解,因此对敏感信息不能存储到shareobject对象,需要考虑存储到后台服务器。
五,安全标签的配置
网页在引入flash的时候,会通过object/embed标签,在设置标签的时候,需要合理配置这些标签的属性,否则可能引起安全问题。
1,allowScriptAccess:是否允许flash访问浏览器脚本,如果不对不信任的flash限制,默认会允许调用浏览器脚本,产生XSS漏洞。
always:总是允许HTML通信也就是Javascript执行;
sameDomain:允许来自本域的flash与HTML通信;
never:不允许flash与页面通信。
2,allowNetworking:是否允许flash访问ActionScript中的网络API,如果不对不信任的flash限制,会带来flash弹窗、CSRF等问题。
all:允许所有功能,会带来flash弹窗危害;
internal;可以向外发送请求/加载网页;
none:无法进行任何网络相关动作
若没必要,建议不要使用Security.allowDomain,Security.allowDomain允许网站A的swf文件跨域调用网站B的swf文件的对象和变量,启用该函数的时候可能被其他网站调用,
导致安全问题。如果一定要使用该函数,请务必对允许的域名进行白名单限制,并对数据来源进行校验。
例如:域名a.com下的flash文件-a.swf,域名b.com下的flash文件-b.swf,则为了防止被a.swf调用,则b.swf需要禁止Security.allowDomain。
二,Security.allowInsecureDomain
Security.allowInsecureDomain允许网站A的swf文件跨协议(http可调用https站点信息)跨域调用网站B的swf文件的对象和变量,启用该函数的时候可能被其他网站调用,导致安全问题。
因此,建议禁止。
三,crossdomain.xml
crossdomain.xml文件放到http://rootdomain/crossdomain.xml,用于指定该域名下的资源(图片,flash,页面内容等)是否允许远程的flash加载。如果配置不当,可能带来CSRF等攻击。
安全配置示例
1、对于不需要外部加载资源的网站,可以删除crossdomain.xml。
2、crossdomain.xml中更改allow-access-from的domain属性为允许的域名白名单,通常应限制在允许域名的子域下。如:
http://cb.qq.com/crossdomain.xml的配置:
<cross-domain-policy>
<allow-access-from domain="act.cb.qq.com"/>
<allow-access-from domain="cb.qq.com"/>
<allow-access-from domain="*.qq.com" secure="false"/>
</cross-domain-policy>
四,禁止把敏感信息存储到flash shareobject
shareObject可以将信息(类似cookie)存储在本地用户硬盘上(以WIN 7为例:C:\Users\[你的用户名]\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\[随机八位字符]\[域]\[进行存储控制的文件的路径,直到swf文件名]\)的文件。
如果文件中存有用户或业务的敏感信息,将造成安全问题。注意:目前该文件的加密已经被破解,因此对敏感信息不能存储到shareobject对象,需要考虑存储到后台服务器。
五,安全标签的配置
网页在引入flash的时候,会通过object/embed标签,在设置标签的时候,需要合理配置这些标签的属性,否则可能引起安全问题。
1,allowScriptAccess:是否允许flash访问浏览器脚本,如果不对不信任的flash限制,默认会允许调用浏览器脚本,产生XSS漏洞。
always:总是允许HTML通信也就是Javascript执行;
sameDomain:允许来自本域的flash与HTML通信;
never:不允许flash与页面通信。
2,allowNetworking:是否允许flash访问ActionScript中的网络API,如果不对不信任的flash限制,会带来flash弹窗、CSRF等问题。
all:允许所有功能,会带来flash弹窗危害;
internal;可以向外发送请求/加载网页;
none:无法进行任何网络相关动作
相关文章推荐
- 20160824音频开发从AVSpeechSynthesisVoice开始及AVAudioPlayer开发的几个问题处理方法
- 整理一些PHP开发安全问题
- 软件开发过程中的几个问题
- 开发网站需要注意的安全问题
- Symbian开发中的几个问题转帖
- 2013年3月7日星期四开发中遇到的几个前端问题
- 软件开发人员发展的几个阶段和问题
- HP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
- 学习Win CE(使用EVC4开发)碰到的几个典型问题
- web开发中组件线程安全问题
- 关于php安全的几个问题
- iOS开发之SQLite安全问题解析之SQLite的锁机制和WAL技术
- Web开发安全问题简单汇总
- 谈谈报表开发应该注意的几个问题——part 2
- 关于C#建立FLASH服务端的安全沙箱问题
- GIS开发随笔(2)——关于建立GIS数据库的几个问题
- PHP开发安全问题总结
- Apache模块开发中遇到的几个问题
- 嵌入式开发的几个基本问题
- 关于html+ashx开发中几个问题的解决方法