0

我提供订阅服务,用户每月支付 9 美元即可访问 100 多个视频。早些时候,我的视频被上传到 Wistia 上,并且它们具有域访问功能 - 所以只有当视频是从我的域访问时 - 它们才会播放。如果有人复制嵌入代码并尝试访问它 - 视频将无法播放。

我现在正在将视频迁移到 Google Cloud 存储。

当前设置如下

  1. 已在 Google 中创建公共访问存储桶并上传所有视频
  2. 复制每个视频的公共访问 mp4 URL 并存储在数据库中。
  3. 当付费用户登录并访问视频时,URL 被传递给播放视频的 flowplayer。

问题

由于 Google 存储桶具有公共访问权限 - 可以轻松访问和共享 mp4 URL。用户可以在第一个月支付 9 美元,然后查看页面的源代码并获取 mp4 文件的 URL 并下载所有 100 个视频,并可以免费分发或上传到 youtube。

可能的解决方案

  1. 可以在 Google Storage 上做些什么来防止这种情况发生。对于我之前的问题,建议使用签名 URL,但它们不能解决此问题。是否有任何其他 ACL 或 CORS 选项可以确保视频安全,以便它们仅在我的网站上播放或提供其他形式的预防。

  2. 可以以编程方式完成某事。我的网站是建立在 PHP 上的。URL 是否可以被屏蔽或难以通过源代码访问。

  3. 可以通过flowplayer完成一些事情吗?我相信他们也有付费版本。它们是否提供任何形式的访问安全性。

我意识到如果人们想要他们可以找到许多工具来下载视频 - 我要做的就是不在查看源代码中显示指向 mp4 文件的直接链接。

谢谢

4

1 回答 1

1

如果您将视频公开并通过其公共访问 url 提供,则无法限制不再付费用户的访问,同时仍允许付费用户访问。从公开数据

注意:当对象被公开共享时,只要对象是公开的,任何知道对象 URI 的用户都可以访问该对象。

因此,要实现您想要的,您需要:

  • 停止公开您的视频。使用最适合您情况的任何访问控制选项。签名 URL是一个不错的选择。您使用自己想要的访问逻辑(例如检查您的域)来调节签名的 URL 生成

  • 永远不要发布公共访问网址。使用与上述相同的访问控制选项。签名 URL 是有效的,但前提是你使用它们,而不是像现在这样的公共访问 URL。注意:不共享公共 url 并不能确保它们不会被猜到和泄露(意外或有意),因此可能会绕过您可能拥有的任何访问控制(请参阅security by obscurity)。还不如放弃共享的公共访问权限。签名 URL 也可用于上传(如果您担心的话)。

拥有自己的访问控制方法(我认为这是您暗示的#2)或第 3 方(您的#3)并非不可能。但上述注意事项适用于这两种情况 - 如果视频是公开共享的,则可以绕过它们。那么为什么要打扰呢?

于 2019-02-10T16:35:57.920 回答