我正在尝试以三种方式播放位于远程服务器上的FLV文件(“crossdomain.xml”在该过程中不存在):
猜猜是什么?
结论:Flash的跨域安全性毫无用处。
请告诉我我错在哪里,或者我只是帮助别人明白这种安全无用。
答案 0 :(得分:5)
我不打算写自己的答案,因为我觉得@jpea已经写过最重要的东西了。但似乎仍然不清楚crossdomain.xml文件的想法和使用。所以这就是:
Cross-site scripting 不是指从其他服务器访问媒体内容,而是指大约80%的互联网安全违规所使用的攻击方法。它可以以多种不同的方式发生,但总是涉及将外部代码注入网页(或插件内容)以使客户端以非预期的方式运行。它可能会在以后导致服务器受到攻击,但最初的问题始终与客户端的漏洞有关。
跨域策略文件是所谓“same-origin-policy”的Flash实现,是防止跨站点脚本编写的重要部分。本质上,它旨在确保SWF加载的任何内容必须与原始内容在同一个域(而不是“在同一服务器上”)。
这在实践中意味着什么?例如,这意味着攻击者不允许将原始SWF加载到托管在不同服务器上的(不可见)封闭SWF中,并监视所有传入和传出流量,或捕获键盘事件,以窃取密码等:违反crossdomain-policy将导致安全错误,从而停止执行所有ActionScript。
不,但是阻止FLV文件以其他方式播放 - 这绝对不是它的目的。
无可否认,有(或多或少)简单的方法可以绕过跨域策略文件,例如使用代理来引导SWF的URL请求,因此使用它们不会产生“真正的”安全性。但作为多层次安全策略的一部分,它们确实有助于提高攻击者的门槛。
答案 1 :(得分:4)
crossdomain.xml用作Flash播放器插件的安全措施。播放器是单独的FLV不是安全风险。在实例#2中,您没有使用Flash播放器。实例#3,它使用Flash在其IDE中使用的相同安全性(允许调试)。实例#1完全按预期工作。
crossdomain.xml不是DRM的安全性,也不允许下载文件。这意味着禁止非预期的域使用来自其他服务器的FLV / F4V(更好地称为跨站点脚本)。