nginx之实现防盗链

1.什么是防盗链?

	盗链是一种损害原有网站合法利益,给原网站所在服务器造成额外负担的非法行为。要采取防盗链的措施,
	首先需要了解盗链的实现原理。
	
	客户端向服务器请求资源时,为了减少网络带宽,提高响应时间,服务器一般不会一次将所有资源完整地传
	回给客户端。比如在请求一个网页时,首先会传回该网页的文本内容,当客户端浏览器在解析文本的过程中
	发现有图片存在时,会再次向服务器发起对该图片资源的请求,服务器将存储的图片资源再发送给客户端。
	在这个过程中,如果该服务器上只包含了网页的文本内容,并没有存储相关的图片资源,而是将图片资源链
	接到其他站点的服务器上去了,这就形成了盗链行为。

	比如内网用户通过Internet访问域名为www.test.com这个服务器上的WEB服务,而该服务器没有存储图片
	资源,而是将图片链接到域名为www.fz.com服务器上,这就形成了盗链行为。这种情况下客户端请求图片
	资源实际上是来自其他的服务器。

在这里插入图片描述

	对于图片来说,A网站,如果想使用B网站的图片,可以直接写上B网站图片的链接地址,或者将B网站的图片
	通过右键另存为的方式下载到本地,然后在页面上使用。如果B网站不想A网站这么干了,那么B网站可以采
	取防盗链的措施来干这个工作,结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原
	来的图片了,出现404或者别的图片替代了。如果通过浏览器直接打开图片url,那么仍然有可能显示404,
	这就是防盗链。

2.为什么要实现防盗链?

	非法访问并不会给网站带来利益或好处,相反,这会浪费网站的带宽,增加服务器的连接压力,比如有些网
	站是按流量收费的,那么只要有人访问了盗用图片或其他文件的网站,网站就要支付这部分的流量费用。

3.怎样实现防盗?

3.1、准备知识

	要实现防盗链,需要了解HTTP协议中的请求头部的Referer头域和采用URL的格式表示访问当前网页或者文
	件的源地址。通过该头域的值,我们可以检测到访问目标资源的源地址。这样,如果我们检测到Referer头
	域中	的值并不是自己站点内的URL,就采取组织措施,实现防盗链。

	需要注意是,这种实现可以限制大多数普通的非法请求,但不能限制有目的的请求,因为这种方式可以通过
	伪造referer信息来绕过,因此该方法不能完全阻止所有盗链行为。
	使用ngx_http_accesskey_module模块或lua脚本实现
	原理如
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值