音乐吧 - www.1327.net

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 322|回复: 0

JW Player之跨域安全(Crossdomain Security)

[复制链接]

1017

主题

1028

帖子

9210

积分

管理员

Rank: 9Rank: 9Rank: 9

音乐币
102
贡献
519
金钱
3339
威望
2111
相册
1

推广达人宣传达人突出贡献荣誉管理最佳新人活跃会员

QQ
发表于 2017-11-22 09:13:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x

最近一段时间为了众所周知的目的而寻觅国外免费的php空间,此事不难,正事也很快就完成了。大部分php空间都配有MySQL,为了一点点小事把那么多免费获得的资源晾着,有点浪费了。于是又折腾起WordPress,然后又牵连到JW Player的WordPress模块(Modules)。以前只是在网盘里瞎折腾,一旦来独立空间玩JW Player,发现跨域安全是必须面对的问题,于是就有了本文。


之前我的博文《JW Player使用简介》曾经提到过,因为Adobe Flash Player的安全限制,JW Player会拒绝加载来自和player.swf不同域的文件。粗略来说,包含以下三种数据将会被拒绝:


*加载数据文件(播放清单和字幕文件)。

*加载SWF文件(插件和皮肤)。

*访问媒体原始数据(例如波形数据和位图数据)。

官方LongTailVideo给出两种解决办法:


*使用代理(本文略)。

*Crossdomain XML。这是官方推荐的首选方式,理由是最好且最简单。

一、跨域安全检查


假设player.swf存放于,而播放清单(假设为xxx.xml)存放于www.bbb.com/xxx.xml。当player.swf准备加载来自不同域的www.bbb.com/xxx.xml时,会先检查www.bbb.com于根目录下是否存在crossdomain.xml文件,如果没有则停止访问并报错,如果存在该文件,则检查文件的配置是否符合访问条件,不符合同样要报错,符合则加载。如果没有xml播放清单而是直接加载媒体文件,则不会报错,也可以正常播放,但是插件无法加载。


二、crossdomain.xml是什么


简单地说crossdomain.xml是一个跨域授权配置文件,以下是一个范例:


《?xml version="1.0"?>

《!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">


《cross-domain-policy>

《allow-access-from domain="*" />

《/cross-domain-policy>

把这段代码拷贝到记事本,另存为crossdomain.xml即可。


其中《allow-access-from domain="*" />这段代码表示授权所有地址的player.swf都可以访问,这是很省心但显然不够安全的配置。想要了解其他更具体的参数配置,那就要到Adobe的官网去下载《Cross-domain policy file specification》pdf文件。


三、crossdomain.xml如何使用


很简单,把crossdomain.xml文件上传到空间的根目录下。只要任何被加载的文件来自不同的域(相对于player.swf),那么该域的根目录下就必须有crossdomain.xml,否则无法顺利加载下一个文件。


四、关于JW Player的插件(Plugins)


插件同样受到跨域安全的限制。插件其实也是一种swf文件,但是和皮肤运用不同,普通用户即使把插件文件上传到自己的空间也不会被使用。所有插件文件由官方统一放置于http://plugins.longtailvideo.com/下(当然少不了crossdomain.xml),所有普通用户的插件请求都会被指向该地址,除非你改写程序代码。而要改写程序代码有两种途径:一是自己破解,二是付费购买。


五、跨域检查顺序


大致以这样的顺序检查:播放清单—〉媒体原始文件—〉插件。经过我自己的试验,将这一过程以下图汇总:


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|版权声明|音乐吧 1327.net ( 桂IPC 网站备案中... )

GMT+8, 2019-12-16 05:04 , Processed in 0.034535 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 1327.Net Inc.

快速回复 返回顶部 返回列表