防盗链 nginx 配置防盗链

防盗链产生效果描述:
在页面中引入一个链接,在页面中点击访问这个链接(注:直接页面通过浏览器打开是无效的,需要通过服务器访问页面)
而通过地址栏与直接打开页面(不通过服务器)直接访问是返回正常的页面。
看到这里也许你也猜到了这应该是跳转页面的后台做的访问限制。

是的,对方做了防盗链处理了。

什么是防盗链?
要了解什么是防盗链,那就得先说说什么是盗链。
盗链:
盗链简单地可以理解成别人偷偷盗用了访问自己资源的链接。盗链比较常见的就是一些小网站盗用大的网站的资源(图片、视频、音乐等),将这些资源的地址直接放在自己的页面上,使得自己的用户可以自己通过自己的网站访问到并不在自己服务器上的内容。这样既可以向用户提供此内容,又可以将访问服务器的负担转移到别人的服务器上。

防盗链:
简而言之,防盗链就是防止别人的盗链行为。让盗用自己资源的请求失效,从而减轻自己服务器的压力。

防盗链如何实现?
防盗链的实现可以通过设置HTTP Header中的Referer实现。当浏览器向服务器发送请求的时候,请求头中包含了Referer用于告诉服务器这个请求是来自哪里的,服务器可以借助这个字段进行防盗处理。后台可以获取到请求中的referer,如果请求来源不是本站则进行阻止或返回其他页面。
如果Http头不包含referer,也就是通过浏览器地址栏直接访问该资源URL,服务器就返回页面。

在这里插入图片描述
nginx 配置

	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { 
		valid_referers none blocked *.baidu.com googld.com; 
		if ($invalid_referer) { 
			rewrite ^/ http://173.232.19.242/a.jpg last;
			#return 404; 
		} 
		expires 30d; 
	}
发布了55 篇原创文章 · 获赞 12 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/mrzhangdulin/article/details/90030616