高并发-Web资源防盗链

什么是防盗链

盗链概念

盗链是指在自己的页面上展示一些并不在自己服务器上的内容
获得他人服务器上的资源地址,绕过别人的资源展示页面,直接在自己页面上向最终用户提供此内容

盗链概念

常见的是小站盗用大战的图片、音乐、视频、软件等资源
通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器

防盗链概念

防止被人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效
可以大大减轻服务器及带宽的压力

工作原理

通过Refer或者签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。
一旦检测到来源不是本站即进行阻止或者返回指定的页面
通过计算签名的方式,判断请求是否合法,如果合法则显示,否则返回错误信息

Referer

Niginx模块ngx_http_referer_module 用于阻挡来源非法的域名请求
Niginx指令valid_referers,全局变量$invalid_referer
valid_referers none | blocked | server_names | string...;
none:写none,referer来源头为空合法,不写none,为空不合法
blocked:referer来源头不为空,但里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头
server_names:Referer来源头包含当前的server_names

image.png

image.png

传统防盗链遇到的问题

伪造Referer

可以使用加密签名解决
使用第三方模块HttpAccessKeyModule实现Niginx防盗链
accesskey on|of 模块开关
accesskey_hashmethod md5 | sha-1 签名加密方式
accesskey_arg GET参数名称
accesskey_signature 加密规则

image.png
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • web资源防盗链 什么是防盗链 盗链是指在自己的页面上展示一些并不在自己服务器上的内容 常见的是小站盗用大战的图片...
    谢凌阅读 281评论 0 0
  • 定义: 此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最...
    TTTTTriM阅读 2,406评论 0 3
  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 3,757评论 0 28
  • 一.盗链的定义: 某内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的...
    繁天涯阅读 13,449评论 2 9
  • 获取全套nginx教程,请访问瓦力博客 防盗链是一种机制,也可以说是一种技术,目的是防止自己网站的东西(如图片,文...
    滔滔逐浪阅读 561评论 0 13