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 '';

防盗链的工作原理

防盗链的实现方法

你可能感兴趣的:(face 30web资源防盗链)