安全与vimeo域隐私和

问题描述 投票:2回答:1

在我们的应用程序中,用户可以订阅以访问“高级视频”。我们使用vimeo使用该域保护设置托管所有这些视频,该设置仅允许我们的视频嵌入特定域。

我们的情况: 如果一个恶意的用户订阅了一个月并使用该访问来获取使用Firebug,chrome inspect或其他类似工具的所有私有视频ID(大约1500),他可以在我们的登录页面上手动插入iframe,因为它是在vimeo允许的域名上,私人视频将不受任何限制地播放。 利用被盗的ID,他可以创建一个插件,可以在我们自己的网站上免费列出我们所有的私人视频:( 这是一个代码示例,有人可以用它来在我们的域上播放视频,只需使用chrome inspect插入它:

<iframe src="https://player.vimeo.com/video/{any video ID including our domain protected ones}" width="640" height="640" frameborder="0" allowfullscreen=""></iframe>

我的问题: 有没有办法避免或让某人更难做到这一点? 我们可以想到的一个可能的解决方案是创建另一个域用作视频的域(避免使用与登录相同的域),但无论如何都可以在chrome的网络选项卡上获取新域。

P.S:我不知道这是否相关,但我们正在使用PhoneGap / Cordova来开发应用程序。

iframe vimeo vimeo-api
1个回答
2
投票

经过研究和vimeo支持的一些答案后,我们找到了适用于我们案例的解决方案。 由于没有办法阻止人们下载您的视频,如果他们可以访问这些视频,我们将策略从使用域名保护更改为直接视频链接/网址(您需要将您的vimeo帐户升级为PRO或BUSINESS)。 当您获得直接视频网址(如https://player.vimeo.com/external/..。)并在浏览器中打开它时,它会将您重定向到临时Url(来自vimeo的答案:“文件和下载链接都是HTTP 302重定向到实际的视频文件资源。实际视频文件资源每隔几个小时就会过期,因此请确保始终使用我们提供的重定向链接。“)。然后我们可以在html5视频标签中使用此临时网址并播放我们的视频。 笔记:

  1. 如果用户窃取了我们的网址,它只会工作几个小时,这样他就无法使用我们的网址在我们的视频中构建网站。
  2. 不幸的是,有网络知识的人可以使用直接视频链接轻松下载视频,但是因为我们无法避免要下载的视频,这不会是一件大事。
  3. 我们需要获得临时url服务器端,因为我们不希望任何人访问原始的直接URL(如https://player.vimeo.com/external/..。)。

这是c#中的一个代码示例,它获取该临时URL(基于this):

  var url = "https://player.vimeo.com/external/...";
  HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
  webRequest.AllowAutoRedirect = false;  // IMPORTANT
  webRequest.UserAgent = "youruseragent";
  webRequest.Timeout = 10000;           // timeout 10s

  // Get the response ...
  using(var webResponse = (HttpWebResponse)webRequest.GetResponse()) {
    // Now look to see if it's a redirect
    if((int)webResponse.StatusCode >= 300 && (int)webResponse.StatusCode <= 399) {
      string uriString = webResponse.Headers["Location"];
      System.Diagnostics.Debug.WriteLine("Redirect to " + uriString ?? "NULL");
    }
  }

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.