0

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

播放器从另一个域加载 flv 视频文件 seeon.flv。目前,即使seeon.flv所在的服务器中没有crossdomain.xml,视频也可以正常加载。这不是我想要或期望的行为。

我还尝试放置一个包含以下内容的 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>

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

任何想法 ?

4

2 回答 2

0

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

听起来您想要的是防盗链保护,这通常在网络服务器级别完成。(也就是说,您在 FLV 的服务器上的 Apache/IIS/etc. 中制定规则,以防止将其提供给其他域的页面。)

于 2011-04-12T07:39:37.740 回答
0

为了保护您的 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
于 2013-08-08T14:21:30.300 回答