跨域策略允许Youtube

时间:2014-06-04 10:22:13

标签: apache security centos xss content-security-policy

我只想要加载来自我的网站,youtube和addthis的脚本,不允许任何其他内容。这是我的crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="my website url"/>
    <allow-access-from domain="www.youtube.com"/>
    <allow-access-from domain="ct1.addthis.com"/>
</cross-domain-policy>

有人可以告诉我哪里出错或者如何验证我的网站是否正在使用crossdomain.xml文件?

亲切的问候, 哈利

编辑:

 <IfModule mod_headers.c>
    Header set X-Content-Security-Policy: "allow 'self'; options inline-script; img-src 'self' data:" 

    <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svgz?|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
        Header unset Content-Security-Policy
    </FilesMatch>
 </IfModule>

我在哪里添加https://www.youtube.com以允许我的嵌入式视频播放?这是堆栈跟踪,但我怀疑它是非常有用的。

Error in event handler for (unknown): Blocked a frame with origin "https://www.youtube.com" from accessing a cross-origin frame.
Stack trace: Error: Blocked a frame with origin "https://www.youtube.com" from accessing a cross-origin frame.
    at Error (native)
    at setupffoverrides (chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/onloadwff.js:151:86)
    at checkgenpwfillforms (chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/onloadwff.js:152:33)
    at receiveBG (chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/onloadwff.js:130:210)
    at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
    at EventImpl.dispatchToListener (extensions::event_bindings:395:22)
    at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
    at Event.publicClass.(anonymous function) [as dispatchToListener] (extensions::utils:65:26)
    at EventImpl.dispatch_ (extensions::event_bindings:378:35)
    at EventImpl.dispatch (extensions::event_bindings:401:17) 

编辑2:

我已将其更改为以下内容,但我仍然可以获得相同的跟踪。

    Header set X-Content-Security-Policy: "allow 'self' https://www.youtube.com; options inline-script; img-src 'self' data:" 

1 个答案:

答案 0 :(得分:1)

如果您希望阻止脚本与指定的脚本分开,则需要Content Security Policy,而不是crossdomain.xml文件。

CSP可以帮助防止XSS攻击,因为只允许授权内容执行。因此,如果恶意用户将某些脚本注入页面,则如果您的策略未指定unsafe inline,则不会执行该脚本。

编辑后更新

如果您需要YouTube跨域访问您的网站,则需要实施CORS。这实际上是您网页中Access-Control-Allow-Origin标题的输出,以允许其他域绕过Same Origin Policy并访问您的内容客户端。