Rei*_*ann 6 youtube-api youtube-iframe-api
当将 youtube-iframe 嵌入到另一个已沙箱化的 iframe 中(以防止 XSS)时,播放器在所有主要浏览器中都会保持黑色。
请参阅https://jsfiddle.net/ms9fwLbk/
<!DOCTYPE html><html lang='en'><head><title>Sandbox iframe youtube problem</title></head><body>
<iframe sandbox='allow-scripts allow-presentation' width='600' height='400' srcdoc='
<!DOCTYPE html><html lang="en"><head><title>iframe</title></head><body>
<!-- original source-code shared from youtube: -->
<iframe width="560" height="315"
src="https://www.youtube.com/embed/QwS1r1mc888?controls=0"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen></iframe>
</body></html>
'></iframe></body></html>
Run Code Online (Sandbox Code Playgroud)
浏览器的控制台日志显示以下错误,因为 youtube-api 在 CORS 方面存在问题(此处没有allow-same-origin 选项,因为允许脚本已启用并且会使 cookie 容易受到攻击)
Uncaught DOMException: Failed to read the 'cookie' property from 'Document':
The document is sandboxed and lacks the 'allow-same-origin' flag.
at Vb.m.get (https://www.youtube.com/yts/jsbin/www-embed-player-vflwaq4V_/www-embed-player.js:142:47)
Run Code Online (Sandbox Code Playgroud)
Access to XMLHttpRequest at 'https://www.youtube.com/error_204?...'
from origin 'null' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
这并没有帮助
如何让 youtube 忽略 cookie 访问或预检来源限制?
(Vimeo 在此类沙盒 iframe 中没有任何问题,但某些视频只能在 YouTube 中观看。)
小智 11
我遇到了同样的问题,必须设置以下沙箱属性才能使其正常工作
sandbox =“允许脚本允许相同来源”
更多信息https://www.w3schools.com/tags/att_iframe_sandbox.asp
| 归档时间: |
|
| 查看次数: |
6204 次 |
| 最近记录: |