crossdomain.xml not honored by jwplayer



我在这个网站上有一个视频播放器http://aiskacang.com/crawl/pseudo.html

播放器加载一个flv视频文件。来自其他域的FLV。目前,即使在服务器中没有crossdomain.xml文件,我们也可以看到。FLV定位,视频加载良好。这不是我想要或期望的行为。

我还试着把crossdomain.xml与以下内容:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="none"/>
</cross-domain-policy>

从firebug中,我可以看到在访问视频文件(see .flv)之前有一个对crossdomain.xml的请求。它很好地返回内容,内容类型为application/xml,但它仍然允许跨域行为。

听起来您可能混淆了跨域策略的使用。禁止跨域访问并不会阻止内容被加载和显示。它只是在加载和显示目标后,限制来自不同域的内容之间的访问。例如,如果A.swf加载B.swf, A将无法调用B内部的方法,但B仍然会被加载。

听起来你想要的是热链接保护,这通常是在web服务器级别完成的。(也就是说,您在Apache/IIS/等中制定规则。在FLV的服务器上,以防止它被提供给其他域名的页面)

为了保护您的Jwplayer免受跨域文件注入,没有内置选项,crossdomain.xml将无法帮助您。

你可以尝试用.htaccess中的服务器规则拒绝远程内容注入http://www.masterdef.net/blog/jwplayer-crossdomain-remote-video-injection/more-32

### Deny SWPlayer remote files access
########## Begin - File injection protection
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
########## End - File injection protection

相关内容

  • 没有找到相关文章

最新更新