PHP 动态视频网址


php dynamic video url

我要实现的是为用户提供一次性视频链接。他们观看链接过期的视频的人说链接在其原始创建后的 1 小时内过期。

问题是如何去做。我可以使用mod_rewrite将值动态传递给PHP和SQL

所以让我们说

mysite.ltd/get_video/Jn12lM2NMZ21oMW312/11111111/The-Amazing-Spider-Man.mp4

细分:get_videoget_video.phpJn12lM2NMZ21oMW312是临时令牌,11111111是时间戳,The-Amazing-Spider-Man.mp4是文件名。

根据我的结论,令牌+时间戳将在视频页面访问时生成并插入到SQL中,如果用户共享视频链接,其他人将无法访问它,因为它将在令牌验证中失败,这是get_video比较当前用户的哈希IP和SQL中的哈希令牌。

这是我对如何做到这一点的看法,但我想知道是否有人有更好的解决方案。

您甚至不需要保存令牌和时间戳。你想要的是用户IP地址的哈希值,时间戳和一些漂亮的长秘密盐(最好为每个用户唯一生成):

$token = somehash($ip_address . $timestamp . $secret);
$url = 'http://xxx/' . $token . '/' . $timestamp . '/filename';

用户访问 URL 后,您将使用用户的数据重播哈希。如果请求相等且请求尚未过期,请投放视频。

你用令牌正确理解了这部分。令牌应仅对当前会话有效,或者如果此链接用于同一页面上的流式传输视频,则只需为每个请求生成令牌。为了生成安全令牌,您可以使用一些我更喜欢存储在您的配置中的秘密盐变量.php,基本上任何框架都会为您生成盐。

通常,您将带有ID的视频/文件名存储在数据库中。 因此,构造文件路径,验证令牌,您可以使用标头强制下载并 readFile() 签出第一条评论,其中有很多代码。 这样,没有人会知道您文件的位置。