Php 防止轻松下载视频
我正在创建一个网站,我需要在其中显示一些资源,如PDF,在线视频。条件是它们不应该被用户下载 对于PDF部分,我使用PDF2SWF创建了它们的SWF,并将它们显示给用户。然而,我对视频感到困惑 我看到了问题的症结所在,并寻求一些解决方案。然而,有人建议使用Php 防止轻松下载视频,php,html,video,Php,Html,Video,我正在创建一个网站,我需要在其中显示一些资源,如PDF,在线视频。条件是它们不应该被用户下载 对于PDF部分,我使用PDF2SWF创建了它们的SWF,并将它们显示给用户。然而,我对视频感到困惑 我看到了问题的症结所在,并寻求一些解决方案。然而,有人建议使用来屏蔽。这看起来不错,但当涉及到创建JS控件来创建自定义按钮和滑块时,这听起来太复杂了 第一个链接中关于临时代币的另一个解决方案很好,我期待着使用它。但我对此有点困惑。我的环境是PHP,MySQL。 我不清楚的一点是,服务器何时用验证URL,在
来屏蔽
。这看起来不错,但当涉及到创建JS控件来创建自定义按钮和滑块时,这听起来太复杂了
第一个链接中关于临时代币的另一个解决方案很好,我期待着使用它。但我对此有点困惑。我的环境是PHP,MySQL。
我不清楚的一点是,服务器何时用验证URL,在我的情况下,它应该发送一个指向实际视频文件的链接,以便在浏览器中播放视频,不是吗?因此,它最终有点违背了代币的用途
我怎样才能真正实现这一点?非常感谢您提供的任何帮助:)请在请求视频时生成哈希:
//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;
这是而不是和“一切都结束”的方法,应该谨慎对待。如果我使用屏幕记录器呢?如果我直接下载SWF并反编译它会怎么样?@vonUbisch这属于“不容易”的范畴,这就是为什么我说“容易”。。因为即使是YouTube上的视频也可以下载,所以我并不期待一些最先进的安全技术,但同时也不想太天真地将文件的URL直接显示到页面源代码中。您刚刚忘记了
$\u SESSION['video\u hash]=$hash的一个小撇号
。但是在//视频代码中,这里的会有类似
的内容,有人可以获取该URL并直接下载视频,不是吗?我弄错了吗?.ext
实际上是一个PHP脚本,请查看如何执行它的详细信息。.ext
也会提示浏览器将其中的任何内容视为.ext
文件。好的,但当视频最终在浏览器上实际传输时,video
标记将在服务器上显示实际视频文件的源,如果我没有错的话。而视频
标签将出现在页面源中。用户能看到页面来源并获得服务器上视频文件的直接链接并下载吗?@tigerden,你说得对,如果我能看到视频,我就可以偷走它。除非您使用临时URL或DRM,否则无法100%保证您的视频不会被盗