php通过session实现url只能访问一次的问题

问题描述

打算用某个php程序返回m3u8文本,php的url形式为https://xxx.com/test.php?toke...
直接通过浏览器访问,第一次打开正常,第二次打开就显示空白,这是我期望的结果。
但是实际应用的时候,这个php的url是放在js中,由video.js通过ajax访问获取的,那么问题出现了,在引用video.js的网页通过F12查到这个php的url,此时右键选择在浏览器新标签中打开,仍然能看到m3u8文本内容。

问题出现的环境背景及自己尝试过哪些方法

打算用某个php程序返回m3u8文本,url只允许访问一次;
查了原页面和新标签的phpsessionid是一致的。
看到一个类似的问题:https://developer.aliyun.com/...

相关代码

// PHP代码

<?php
session_start();
if (isset($_SESSION['USERTAG']) && $_SESSION['USERTAG'] == $_GET['token']) {
    exit();
} else {
    $_SESSION['USERTAG'] = $_GET['token'];
    $m3u8='m3u8文本内容';
    echo $m3u8;
}
?>

你期待的结果是什么?

期望通过F12找到的php url,无法访问;
按照现在的情况,仍然能访问一次,那么用户可以用一些m3u8下载工具获取m3u8的内容。

PS:其他防下载/防盗链的措施当然也会做,考虑这个问题的解决方案的时候,假定没有做其他任何防盗链错误,只通过url地址只允许访问一次来稍微限制下用户直接复制粘贴url到下载工具中下载(当然他们可以在F12里直接复制m3u8文本内容,然后保存文件。。。,起码增加下操作复杂度)。
请指教!谢谢!

阅读 3.3k
1 个回答

先把 isset($_SESSION['USERTAG'])$_SESSION['USERTAG'] 都打出来,看看通过 ajax 访问和通过浏览器访问,这两个输出的有啥不一样.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题