配置防盗链
防盗链原理:
http标准协议中有专门的字段记录referer,http请求中会包含来自哪个url的点击来源,通过这个referer字段可以检测是否别的网站发送的请求。一来可以追溯上一个入站地址是什么
二来对于资源文件,可以跟踪到包含显示他的网页地址是什么因此所有防盗链方法都是基于这个referer字段
防盗链的作用:
所谓安全防盗链,是一种加了防盗链签名的URL,经过签名的URL能够跟服务器的安全机制进行配合,可以将URL的使用权限定在您的APP上,恶意第三方拿到URL也不能使用和传播。
防盗链是一种机制,也可以说是一种技术.目的就是防止自己网站上的东西(如图片,文件 etc。)被其他用户采用其他的技术手段来访问或者下载,为什么设置防盗链呢,因为涉及到一些利益的问题。因为盗链的话就会分散主网站的流量,流量即利益所在。防盗链是如何实现的呢,或者是怎么才能做到自己网站上的东西不被别人盗链呢,要说这个就有必要说说他的原理。我们知道在网络上我们每次发送一个请求的时候都会生成一个http请求,然后服务器会对这个http请求进行解析,那么一个http请求中有什么标志或者说是什么作用来实现防止盗链的作用呢:主要是该站点在得知有请求时,会先判断请求头中的信息,如果请求头中有referer信息,然后根据自己的规则来判断referer头信息是否符合要求,referer 信息是请求该图片的来源地址。1、正常使用百度贴吧查看图片的请求头信息:referer:http://tieba.baidu.com/2、通过第三方查看图片的请求头信息:referer:http://localhost/booledu/http/index.html
配置虚拟机文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#</FilesMatch>
#</Directory>
<Directory /data/wwwroot/111.com> ##定义防盗目录
SetEnvIfNoCase Referer "http://111.com" local_ref ##定义白名单
SetEnvIfNoCase Referer "http://ask.apelearn.com" local_ref ##定义猿课白名单
#SetEnvIfNoCase Referer "^$" local_ref ##把空的referer也加入白名单
<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> ##定义规则
Order Allow,Deny ##order定义Allow和Deny的顺序,是先允许还是否认掉,并不是以下面的允许规则或否认规则的先后顺序来定的。
Allow from env=local_ref ##只写了允许规则的内容,否认规则没写
</FilesMatch>
</Directory>
ErrorLog "logs/111.com-error_log"
编辑回复