最近有个想法,想做类似下面的视频URL防盗验证;

1、URL Tag Validation2、Special format of URL for preventing unauthorized usage and access、
sampleOriginal: http://www.baidu.com/2016/0704/8025915_HD-60i_7198.mp4Using UTV:http://www.baidu.com/2016/0704/8025915_HD-60i_7198.mp4?px-time=1467685158&px-hash=a08a3c149514aae2aea14755a45a29c2px-time : current time or expire timepx-hash : hash(secret + url_path +expire_time) 

  

下面是我的想法,按照想法先搞一下;

1. 一个简单流媒体测试服务器。

2. 搞清楚页面防盗链接所需要的知识,比如打开视频链接继而验证referer,还有添加校验的args等。

3. 优化,添加功能。

4. 验证这些是否符合需求。

搭建流媒体使用tengine 新版自带的mp4模块

下载源码:http://tenine.taobao.org/download.html

./configure  --prefix=/web --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module  --with-http_ssl_module   --with-http_image_filter_module  --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_mp4_module && make && make install

Nginx配置文件:

####
    server {listen       80;server_name  xxxxxx;access_log  logs/vhost/xxxxxx_access.log  main;#access_log  "pipe:rollback logs/vhost/xxxxxx.access_log interval=1d baknum=7 maxsize=2G"  main;
location / {root   xxxxxx;index  index.html index.htm;mp4;  #mp4配置,没有做优化}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#
        error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

播放器选用Jwplayer

https://www.jwplayer.com  PS:注册☑️勾选了开发者就可以获取JS链接;jdk等用来测试嗯嗯免费^ ^。

编辑测试页面:

index.html

<!DOCTYPE heml>
<html><head><!-- 在这里替换自己的JW Player id --><script type="text/javascript" src="https://cdn.jwplayer.com/libraries/xxxx.js"></script><script type="text/javascript" src="getParam.js"></script><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /></head><body bgcolor="#000000"><div id="myElement">Loading the page...</div><script type="text/javascript">var file_name=getParam('id');console.log(file_name);jwplayer("myElement").setup({file: "http://x.x.x.x:8081/" + file_name,// image: "data/myposter.jpg",title: file_name,});</script></body>
</html>

获取文件getParam.js

function getParam(paramName) {paramValue = "", isFound = !1;if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&"), i = 0;while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++;}return paramValue == "" && (paramValue = null), paramValue;
}

流媒体测试服务器就基本搭建ok了,测试如下:

PS: 个人的VPS已升级,流媒体测试防盗链学习将使用 referer+nginx 验证token来打造。token: md5(appId+appKey)  敬请期待;

参考资料:

https://www.xiaohulu.com/video/user_detail?plat=201&roomid=61936357840

https://www.cnblogs.com/nopnog/p/7452405.html

https://www.cnblogs.com/vinyuan/p/3556218.html

https://leefige.github.io/2019/03/05/%E5%9F%BA%E4%BA%8ENginx%E9%85%8D%E7%BD%AEWeb%E8%A7%86%E9%A2%91%E6%B5%81%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8/

转载于:https://www.cnblogs.com/sean-yao/p/11448324.html

防盗链测试01 - Jwplayer+Tengine2.3.1 mp4模块打造流媒体测试服务器相关推荐

  1. java防盗链_javaWeb防止恶意登陆或防盗链的使用

    使用场景:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有"此图片仅限于***网站用户交流沟通使用"之类的"假图片".用嗅探软件找到了多媒体资源的真 ...

  2. JAVA防盗链在报表中的应用实例

    今天我们来聊聊Java防盗链,多说无用,直接上应用案例. 这里所用的工具是报表软件FineReport,搭配有决策系统(一个web前端展示系统,主要用于权限控制),可以采用java防盗链的方式来实现页 ...

  3. Nginx配置防盗链

    Nginx配置防盗链 进入Nginx配置文件: [root@LHQ vhosts]# vim test.conf server { listen 80; server_name www.test.co ...

  4. 防盗链Nginx设置图片防盗链

    切记,替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片其实也处于防盗链情况下,会造成仍旧无法显示设置的图片. 一.全站图片防盗链 在/usr/local/nginx/conf/nginx. ...

  5. unity如何实现图片透视_如何用nginx实现防盗链?保护网站图片、视频。

    什么是防盗链? 有时候,当我们在网站上浏览图片时会遇到图片打不开,并看到提示:"403权限禁止".这可能是正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链 ...

  6. IHttpHandler的妙用之防盗链

    昨天粗略讲了一下IHttpHandler接口的作用和动态给图片添加水印的处理,如果对这些不太清除的朋友,建议看看这篇<IHttpHandler的妙用(1):给图片添加水印>:http:// ...

  7. IHttpHandler的妙用(2):防盗链!我的资源只有我的用户才能下载

    昨天粗略讲了一下IHttpHandler接口的作用和动态给图片添加水印的处理,如果对这些不太清除的朋友,建议看看这篇<IHttpHandler的妙用(1):给图片添加水印>:http:// ...

  8. 配置防盗链、 访问控制Directory 、访问控制FilesMatch

    2019独角兽企业重金招聘Python工程师标准>>> 5月31日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 ...

  9. Apache(httpd)配置--防盗链配置和访问控制

    一.配置防盗链 通过防盗链的方式,可以设置限制第三方的站点通过引用的方式获取服务器上的图片,数据等,如果想要获取本站点的图片数据,只能通过本站点访问获取,这样也有效的减少了服务器的资源. 什么是ref ...

最新文章

  1. JavaScript[对象.属性]集锦
  2. 人工智能(AI)遇上仿制药
  3. TF学习:Tensorflow基础案例、经典案例集合——基于python编程代码的实现
  4. C指针原理(20)-C指针基础
  5. maple里面怎么搜索_C#基础系列06 全栈第三步 说好的增加搜索
  6. [C++STL]stack容器用法介绍
  7. 前端学习(1187):双向数据绑定2
  8. ajax入门体会(转)
  9. [转]数据中心网络虚拟化 隧道技术
  10. java 自定义 operator_见微知著——从自定义类型的operator==说起
  11. Python实现TCP协议套接字多路复用
  12. 电脑声音太小如何增强_如何录制电脑上播放的声音,背景音乐
  13. [Erlang脚印 0004] gen_server
  14. *第九周*数据结构实践项目一【猴子选大王(数组)】
  15. win7生成ssh key配置到gitlab
  16. [原创开源项目]EPUBBuilder一款在线的epub电子书编辑工具
  17. python如何循环sql语句_python sql 循环语句怎么写-问答-阿里云开发者社区-阿里云...
  18. 如何将JavaScript中的JSON字符串转换为JSON对象数组?
  19. LPC1788 Fatfs读写U盘操作
  20. 各纬度气候分布图_【地理干货】气压带和风带知识点总结,附世界各种气候类型分布图(高清版)汇总!...

热门文章

  1. git revert 的问题
  2. 【Unity】Protobuf的使用与常见问题
  3. duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
  4. 如何对自己做好正确的人生规划
  5. 【转载】Oracle10g数据类型总结
  6. 设置VS2010中使用IntelliTrace来进行调试
  7. 数据结构C语言实现课后习题答案第6-9章
  8. 【IM】关于条件随机场CRF的理解
  9. Leetcode 844. 比较含退格的字符串 解题思路及C++实现
  10. linux studo命令,在 Linux 上使用 Visual Studio 开发环境