防盗链是什么意思呢?举个简单的例子,我买了某个视频的版权,还花了大价钱买了CDN,但是其他人直接链接指向我的这个视频,那我这视频直接出现在别人网站的页面上,那我岂不巨亏。
网站资源被盗链简单来说就是别人不是从你的网站通过下载资源,被盗链的几种可能情况:
1、在人气非常旺的网站、论坛、社区的网页里直接引用了你网站上的图片,或者直接在其他网页(使用flash或媒体播放插件)里嵌入了你网站上的mp3。
2、在人气非常旺的网站、论坛、社区里提供了你的资源的下载地址。
3、你网站的资源可能被一些下载软件列入了“资源候选名单”,当其他人用下载工具下载相同的文件时,下载软件会自动找上门并且从你的服务器下载。
简单有效的防盗链措施 referer 模块
- 原理:
某网站通过url引用了你的页面,当用户在浏览器上点击了url时,http请求的头部会通过referer头部,将该网站的当前url带上,告诉服务器本次请求是从哪里发起的。
通过referer模块,用invalid_referer 变量根据配置判断referer头部是否合法。
http://nginx.org/en/docs/http/ngx_http_referer_module.html - valid_referer 指令
参数: - none 允许确实referer头部的请求访问
- block 允许referer头部没有对应的值的请求访问
- server_names 若referer中的域名与server_name 中的本机某个域名匹配则允许访问。(或可以指定表达式)
valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.; if ($invalid_referer) { return 403; }
可以看到referer 模块生效了,因为referer头带的 referer.wjx.com 并没有在配置中匹配到。
但是这种是比较low的,对防御大部分浏览器还行,但是防御自定义客户端伪造头部就没法了。
来源:https://www.cnblogs.com/zouhong/p/12288421.html