问题描述 打算用某个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文本内容,然后保存文件。。。,起码增加下操作复杂度)。 请指教!谢谢!
先把 isset($_SESSION['USERTAG']) 和 $_SESSION['USERTAG'] 都打出来,看看通过 ajax 访问和通过浏览器访问,这两个输出的有啥不一样. 如果都一样那就把整个 if 条件涉及的变量都打出来,能走 else 分支那说明 if 里条件是 false,那就要找是哪个变量导致了. 一般是是sessionid的问题,原来我在浏览器母页面地址栏看到的sessionid和ajax访问时的sessionid不一样,通过自定义sessionid解决。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。