什么是资源盗链:
简单的来说就是不法网站未经许可,通过在自身的网站程序里非法调用其他网站的资源,然后在自己的网站上显示这些可以调用的资源,进而填充自己网站的效果,这一举动不仅浪费了调用资源网站的网络流量,还造成其他网站的带宽和服务器压力。
如果企业又cdn加速的话会造成流量无缘无故多出好几个G,会给公司带来很大的损失。
那么如何处理呢:
1.对IDC和CDN带宽进行监控报警
2.每天关注流量的变化,关注异常流量。
3.对访问日志进行分析,快速定位异常流量。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。referer是目前网站图片,附件,html等常用的防盗链手段。
可以根据cookie进行防盗链。
Nginx web服务实现防盗链实战
1.利用referer并且针对扩展名rewirte重定向
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|zip|rar)$ {
valid_referers none blocked *.etiantian.org etiantian.org;
if ($invalid_referer){
rewirte ^/ http://wtiantian.org/img/nolink.jpg;
}
}
根据expires来设置
根据虚拟主机来进行设置
server {
listen 80;
server_name www.etiantian.com;
root html/www;
index index.html index.htm;
access_log log/www.acces.log main;
location ~* ^.+\.(gif|jpg|png|wf|glv|rar|zip)$ {
if ($invailb_referer){
rewite ^/ http://bbs.etiantian.com/img/nolink.jpg
}
acces_log off;
root html/www;
expires 1d;
break;
}
}
利用referer,并且针对站点目录过滤返回错误码。
针对目录的方法是:
location /imager {
root /data/www/www;
valid_referer none blocked *.etiantian.org etiantian.org;
if {$lnvalid_referer}{
return 403;
}
}
在上面的防盗链中可以针对自己的需求自行设置。
下面呢就是对上述的配置进行讲解:
"jpg|jiig|png|flv|war|mp3"表示对这些为后缀名的进行资源防盗
"*.etiantian.org etiantian.org" 表示这个请求可以正常访问上面的文件资源
if{}中的内容意思就是如果地址不是上面指定的地址的话就跳转到rewirte制定的地址中去,也可以retrun直接返回错误403代码
return 403 直接返回403http返回码
rewirte ^/ http://www.etiantian.org/img/nolink.jpg 表示显示一张防盗链图片
access_log off; 关闭访问日志
expires 3d ; 浏览器缓存时间
也可以通过nginxHttpAccesskeyMoudle 实现防盗链