防止轻松下载的视频

时间:2014-03-09 21:20:49

标签: php html5 video

我正在创建一个网站,我需要在其中显示一些资源,如PDF,在线视频。条件是它们不应该可以下载给用户。

对于PDF部分,我使用PDF2SWF创建了它们的SWF并将其显示给用户。但是,我对视频感到困惑。

我看到了this linkthis link的解决方案。但是有人建议使用<canvas>来屏蔽<video>。看起来不错,但是当创建JS控件来创建自定义按钮和滑块时,听起来太复杂了。

关于临时令牌的第一个链接中的另一个解决方案很好,我期待着使用它。但我对它有点困惑。我的环境是PHP,MySQL。 我不清楚的一点是,当服务器使用method given here验证URL时,在我的情况下它应该发送一个链接到实际的视频文件,以便在浏览器中播放视频,不是它?所以它最终会破坏令牌的目的。

我该如何准确地实现这个?非常感谢任何帮助,谢谢:)

1 个答案:

答案 0 :(得分:1)

请求视频时生成哈希:

//just an example, hash however you want
$hash = md5(filesize($video), true));

然后在会话中保存此哈希

session_start();
$_SESSION['video_hash'] = $hash;

然后重定向

Header('Location: http://domain.tld/path/to/video.ext?vh='.$hash);

现在在视频实际加载的页面上:

session_start();
if($_GET['vh'] === $_SESSION['video_hash'])):
    //play the video
    //video code here
    //expire the hash
    $_SESSION['video_hash'] = null;
else:
    //forbidden error
    header('HTTP/1.0 403 Forbidden');
endif;

这是,并且最终都是所有方法,应该用一点点盐。