【问题标题】:How to protect a video streaming url by hiding or masking it?如何通过隐藏或屏蔽来保护视频流 URL?
【发布时间】:2016-05-27 18:54:15
【问题描述】:

我需要向我的网站添加一个视频播放器,该播放器将播放来自视频流媒体(YouTube Live、Azure 媒体服务或托管公司的任何流媒体服务)的内容。

播放器仅对经过身份验证的用户可见,但由于流式 URL 不会更改,我需要对用户隐藏它(可能使用我域中的 DNS 配置或其他方式)。

您知道保护流式 URL 的方法吗?

【问题讨论】:

  • 您是否只是想对其进行模糊处理,以便通过视图源不容易看到,或者您真的想完全隐藏它(例如,从浏览器开发工具中)?
  • 我想我的大多数目标用户都不知道如何使用开发者工具,并且流媒体将只提供 6 天。我只是想混淆网址,这样没有注册我的网络研讨会的人就无法观看。
  • 我假设是服务器端,因为客户端违背了目的。 Hex还是Base64编码呢?请注意,阻止尚未注册您服务的人观看公共 YouTube 视频是另一回事。就像,你无法阻止他们。此时,您可能需要在您的网站上创建一个 URL 来验证用户身份,然后对 YouTube 执行 301。
  • 您的意思是对流媒体网址进行编码?它可以是未列出的 YouTube 视频,也可以是我愿意付费购买的流媒体服务器。

标签: html video-streaming azure-media-services


【解决方案1】:

鉴于您不希望人们看到视频的要求,即使他们已经获得了 URL(“所以没有注册我的网络研讨会的人将无法观看它”),并且鉴于播放器仅对经过身份验证的用户可用,我有一个建议:

  1. 在您的域中为每个视频流创建一个唯一的 URL。

  2. 当用户点击流的 URL 时,执行以下操作:

    1. 使用您的身份验证逻辑查看用户是否有权限。

    2. 如果用户有权限,则使用 301 或将流传递给播放器。

    3. 如果用户没有权限,将用户重定向到登录页面(或其他)。

  3. 重复。

根据经验,一旦您的复杂程度远远超出该级别,您就需要开始将执行此操作的服务视为他们的业务模型。否则你就有掉进兔子洞的危险。

这里需要注意的是,一旦用户获得了流,有动力的人仍然可以识别源 URL 并对其进行任何操作。

【讨论】:

    【解决方案2】:

    如果您想保护您的内容,您必须为经过身份验证的用户即时加密和解密。用于解密的内容密钥可能与特定媒体内容相关联并且具有过期时间。在这种情况下,即使是知道流 uri 的用户,也必须获取内容密钥以进行解密。您可以使用明文密钥加密或 DRM 服务来存档此方案。 https://azure.microsoft.com/en-us/services/media-services/content-protection/ - 包含 Azure 媒体服务中内容保护选项的概述。 如果您只是通过提供重定向来屏蔽 url,没有什么能阻止用户打开任何浏览器开发工具并复制目标 uri。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 2016-10-18
      • 2014-03-09
      • 1970-01-01
      • 2022-12-10
      • 2012-02-05
      • 2012-04-23
      • 2019-05-30
      相关资源
      最近更新 更多