【问题标题】:Why html5 video has no issue with CORS policy? [duplicate]为什么 html5 视频与 CORS 政策没有问题? [复制]
【发布时间】:2021-04-06 02:13:34
【问题描述】:

当我在视频元素上包含控件时,例如:

<video controls >
    <source src={"https://another-server/myVideo.mp4"} type="video/mp4"/>
</video>

我得到了一个内置的下载功能,如下所示。

视频下载正常。但是当我尝试使用 javascript 和 blob 保存视频时,我遇到了 CORS 政策问题。为什么 html5 不是这样?

【问题讨论】:

  • 副本上的“关于同源策略”和“为什么同源策略仅适用于网页中的 JavaScript”部分特别相关。
  • @Quentin 不,相关帖子中没有回答。它只是解释了 CORS 政策适用的原因和时间。但这并不能解释我的要求。我在问为什么 html5 内置功能有任何不同,因此即使我尝试这样做时遇到了 CORS 问题,它们从其他来源下载内容也不会出现问题。
  • 正如副本所说,您(用户正在访问的网站的开发人员)没有编写内置于执行下载的浏览器中的代码,因此您不能这样做代码恶意窃取对方愿意提供给拥有浏览器的用户的数据。
  • @Quentin 所以我认为我们信任 html5 而不是 javascript。这意味着用户必须单击按钮才能下载内容(使用视频元素),而如果还允许使用 javascript,它还可以使用其他用户的计算资源来处理此内容。但我一直认为CORS与安全有关,不是防盗机制。
  • @Quentin 我希望网络社区有时会同意开放 js 库和一个有用的 API,它可以在没有任何 CORS 问题的情况下执行,因为并非所有 js 都试图窃取内容,而只是为了让一个用户的ui更方便。

标签: javascript html cors html5-video blob


【解决方案1】:

因为Cross Origin Policies 不会阻止客户端下载资源,它会阻止来自给定来源的脚本从其他来源读取资源的内容。

客户能够在他们的磁盘上下载资源并不意味着您的脚本可以读取这些内容。无论浏览器可以加载什么,它们始终可以保存到磁盘。

【讨论】:

  • 但是 html5 视频并没有做到这一点?它确实从其他来源读取资源的内容。
  • 您的脚本无法读取其内容。但是是的,它仍然可以嵌入,当然也可以由浏览器读取。见developer.mozilla.org/en-US/docs/Web/Security/…
猜你喜欢
  • 2020-12-23
  • 2020-03-30
  • 2020-01-15
  • 2021-06-24
  • 1970-01-01
  • 2020-11-02
  • 2021-12-07
  • 2021-10-11
  • 2020-07-28
相关资源
最近更新 更多