当前位置: 首页 > news >正文

防止视频资源被下载

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

就 PHP语言来处理:

一、将视频资源传到 置顶服务器   例如实际目录   http://xxx.com/videoData/xxx.mp4

二、html中通过

embed video   来引入  资源地址  : http://xxx.com/videoData/xxx.mp4   即可实现播放;

注:但是这样  资源地址就被很容易的获取到,而且可以下载到资源

css  video去除  下载按钮:

video::-webkit-media-controls-enclosure { overflow:hidden; } video::-webkit-media-controls-panel { width: calc(100% + 30px); }

但是 ,这样依然无法  屏蔽掉 懂代码的人F12 ,或者右键  拿到 真是的资源地址   盗用视频资源


三、处理方案: 配合PHP

embed video   来引入 资源地址:  用一个PHP动态链接处理一下

PHP:

// 先进入详情页
publicfunction detail(){
$_SESSION['token'] = md5("xxx"); //做一个token 用于失效方案
//进入到详情页
}

/** 
     +---------------------------------------------------------- 
     * 生成html video 播放地址 
     +---------------------------------------------------------- 
     * @access public 
     +---------------------------------------------------------- 
     */  
    public function goVideo()  
    {  
$vid = (int)$_GET['videoId']; //数据库存放的资源id
$data = $this->getInfo($vid); //通过vid 获取 数据库存放的真实资源地址
        if($_SESSION["token"]){  
            unset($_SESSION["token"]); //删除token,保证每次只能播放一次
            header("Location:" . $data['URL']);   //重定向 保证video src引入后,拿到真实地址进行播放
        }  
    }

HTML 中embed video的引入 动态地址为: xxx.com/xxx/goVideo?videoId=1

<video controls="controls" autoplay="autoplay">
<source type="video/ogg" src="xxx.com/xxx/goVideo?videoId=1" /><!--这样的地址他们就醉了吧,真实地主保护住了 而且每次进入详情页播放完了,重新进入detail链接方法中,才能播放 -->
 Your browser does not support the video tag.
</video>
--------------------- 
作者:持之以恒 
来源:CSDN 
原文:https://blog.csdn.net/qq1355541448/article/details/78350857 
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://my.oschina.net/zzlzheng/blog/3023921

相关文章:

  • 第一周 IP通信基础学习回顾
  • Electron系列文章-主进程与渲染进程
  • 刀塔自走棋上线不到十分钟就被功击,几十万玩家登录不上
  • java内存占用异常问题常见排查流程(含堆外内存异常)
  • Java springcloud B2B2C o2o多用户商城 springcloud架构(八)springboot整合mongodb
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 云端服务器与传统的独立主机服务器有什么区别
  • 中台之上(十三):探讨支持组装式开发的业务架构设计方法
  • 阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
  • python -迭代器与生成器 以及 iterable(可迭代对象)、yield语句
  • LeetCode.914 卡牌分组
  • 本周学习小结(25/03 - 31/03)
  • Beetl 提供俩种方式来显示实现局部更新
  • core_framework —— 基于libev的轻量级lua网络开发框架
  • MyCAT水平分库
  • 时间复杂度分析经典问题——最大子序列和
  • android图片蒙层
  • CentOS7简单部署NFS
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • iOS编译提示和导航提示
  • JAVA多线程机制解析-volatilesynchronized
  • leetcode46 Permutation 排列组合
  • SpriteKit 技巧之添加背景图片
  • Vue.js-Day01
  • 强力优化Rancher k8s中国区的使用体验
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 深入浏览器事件循环的本质
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用Gradle第一次构建Java程序
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 新手搭建网站的主要流程
  • 一道面试题引发的“血案”
  • 一些css基础学习笔记
  • 用Python写一份独特的元宵节祝福
  • 做一名精致的JavaScripter 01:JavaScript简介
  • postgresql行列转换函数
  • python最赚钱的4个方向,你最心动的是哪个?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #宝哥教你#查看jquery绑定的事件函数
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四) 虚拟摄像头vivi体验
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)socket Aio demo
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .dwp和.webpart的区别