重庆网站优化公司提供重庆SEO服务
159 0061 9600(微信同号)
一、Referer是什么?用途?
二、盗链是什么?危害?
三、防盗链小技巧
四、反防盗链
五、利用好盗链,也是一门生意!
一、Referer是什么?用途?
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。
用途:
1、获取访问来源,统计访问流量的来源和搜索的关键词
比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
像CNZZ、百度统计等可以通过Referer统计访问流量的来源和搜索的关键词(包含在URL中)等等,方便站长们有针性对的进行推广和SEO。
2、防盗链
通过分析访问源,拒绝非法访问,主要是图片和网盘服务器使用的较多。
二、盗链是什么?危害?
盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。
危害:
1、大量的盗链,会消耗原生网站带宽,导致服务器运行缓慢,影响原生网站用户体验。如果没有良好的防盗链技术,一般服务器数周之内就会被盗链拖垮,并且不能给原生网站带来任何流量。
2、版权被无偿使用,侵犯了著作人的权益。
3、倒链一旦猖獗,会严重阻碍了互联网的健康发展,没人愿意为正版付费,自然也就没有了正版生长的土壤,最后受害的还是广大网民。
三、防盗链小技巧
本文主要介绍两种方法做防盗链处理:
1、nginx配置方式防盗链
主要是利用valid_referers指令防盗链,例如防止未经允许的网站盗链图片、文件等。
因为HTTPReferer头信息是可以通过程序来伪装生成的,所以通过Referer信息防盗链并非100%可靠,但是,它能够限制大部分的盗链
该指令"valid_referers"的语法:
valid_referers [none|blocked|server_names] ...
默认值:none
使用环境:server,location
该指令会根据Referer Header头的内容分配一个值为0或1给变量$invalid_referer。
如果RefererHeader头不符合valid_referers指令设置的有效Referer,变量$invalid_referer
将被设置为1.
该指令的参数可以为下面的内容:
none:表示无Referer值的情况。
blocked:表示Referer值被防火墙进行伪装。
server_names:表示一个或多个主机名称。从Nginx0.5.33版本开始,server_names中可以使用通配符"*"号。
实例演示:
修改nginx.conf:
第一行:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
其中“gif|jpg|jpeg|png|bmp|swf”设置防盗链文件类型,自行修改,每个后缀用“|”符号分开!
第三行:
valid_referers none blocked *. sosogoto.com;
就是白名单,允许文件链出的域名白名单,自行修改成您的域名!*.这个指的是子域名,域名与域名之间使用空格隔开!
第五行:
rewrite ^/ ;
这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。
这样设置差不多就可以起到防盗链作用了,上面说了,这样并不是彻底地实现真正意义上的防盗链!
我们来看第三行:valid_referers 里有 “none blocked”,我们把“none blocked”删掉,改成如下配置:
这样您在浏览器直接输入图片地址就不会再显示图片出来了,也不可能会再右键另存什么的。
第五行:
rewrite ^/
这个是给图片防盗链设置的防盗链返回图片。
如果文件也需要防盗链下载,把第五行:
rewrite ^/
改成一个链接,可以是您主站的链接,比如把第五行改成:
rewrite ^/ ;
这样,当别人输入文件下载地址,由于防盗链下载的作用就会跳转到您设置的这个链接!
最后,重启nginx生效!
2、Fileter拦截器方式防盗链
通过在应用程序设置Fileter拦截器的方式,对每一个需要处理的请求分别动态处理。