face 30web资源防盗链

web资源防盗链

什么是防盗链

盗链是指在自己的页面上展示一些并不在自己服务器上的内容

常见的是小站盗用大战的图片 音乐 视频 软件等资源

通过盗链的方法可以减轻自己的服务器的负担因为真实的空间和流量均是来自别人的服务器

防盗链,防止别人通过一些技术手段绕过本站的资源展示页面 盗用本站的资源 让绕开本站资源展示页面的资源链接失效

可以大大减轻服务器及贷款的压力

工作原理

通过referer或者签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址

一旦检测到来源不是本站即进行组织或者返回指定的页面

通过计算签名的方式 判断请求是否合法 如果合法则显示 否则返回错误信息

referer

nginx模块 ngx_http_refer_module用于阻挡来源非法的域名请求

nginx指令 valid_referers 全局变量 $invalid_referer

invalid_referer  none |blocked| server_names|string....

none:“referer”来源头部为空的情况

blocked referer”来源头部不为空,但是里面的值被代理或者防火墙删除了 ,这些值都不以 http://或者 https://开头

server_names  “referer”来源头部包含当前的server_names

可以 但是有漏洞 伪造referer

location~.*\.(gif|jpg|png|flv|swf|rar|zip)$

{

valid_referers none  blocked  ling.com  *.imooc.com;

if($invalid_referer)

{

#return 403;

rewrite ^/http://www.ling.com/403.jpg;

}

}

可以使用加密签名

使用第三方模块 httpAccessKeyModule实现 nginx防盗链

accesskey on|off 模块开关

accesskey_hashmethod md5|sha-1签名加密方式

accesskey_arg  GET参数名称

accesskey_signature加密规则

location~.*\.(gif|jpg|png|flv|swf|rar|zip)$

{

accesskey_on;

accesskey_hashmethod md5;

accesskey_arg "key";

accesskey_signature "ling$remoteaddr";

}

$sign=md5('ling'.$_SERVER['REMOTE_ADDR']);

echo '<img src="./logo.pnh?sign'.$sign.'">';

防盗链的工作原理

防盗链的实现方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容