欢迎关注我的微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 《Java 核心知识整理&面试.pdf》资源连接!!html
我的网站: https://www.exception.site/essay/how-to-set-aliyun-oss-http-refererjava
1、背景面试
2、背后有啥猫腻浏览器
3、什么是盗链?缓存
4、为何会被盗链?服务器
5、OSS 设置防盗链微信
6、验证一下效果架构
7、另一些应对手段curl
小哈前天陆续接到三个电话,但都由于忙于工做、下雨天等各类因素致使没接上,电话均来自杭州,心理一想,估计是阿里云的客服吧,由于以前也会偶尔接到他们的电话,好比回访之类的。学习
感受应该也不是什么要紧的事儿。直到晚上,躺在床上休息的时候,无心翻动手机,鬼使神差的,我点开了短信查看。
PS: 小哈日常不怎么主动去翻短信,短信上常年数字 1000+,主要里面内容基本上是一些验证码啊、垃圾短信啊啥的,也懒得去清理。
无心间看到下面这条短信:
打了一个激灵,事情并不简单,若是还不及时续费,网站图片(小哈网站图片均存储在阿里云 OSS 对象存储上)都将没法访问!
吓得我赶忙又续费了 50 块钱!
暂时解决了 OSS 快到期的问题后,我开始回想整个事情的通过。OSS 当时开通的是按时付费的,由于使用的比较少,选择按时付费要更划算一些。
可是这一个月来,小哈写博客频率高了一些,另外一方面,也为了公众号文章能有个良好的阅读体验,也是能用图片展现的,就尽可能少上一行代码。
可是小哈的个站,天天的访问量只有可怜的几十个IP, 可是 OSS 后台的统计是下面这个鬼样子的:
存储用量暂且不说,外网流出流量 50G+,图片读请求 10w+, 什么鬼啊!这个数据对于天天访问几十个IP的个站,绝对是不正常的!
因为是按小时付费,峰值的时候,每小时就耗费5块大洋,这谁顶得住啊,帐户上就那点钱,不欠费才怪呢!
问题缘由,小哈首先想到的是图片被盗链了!
如下来自百度百科官方解释:
盗链是指服务提供商本身不提供服务的内容,经过技术手段绕过其它有利益的最终用户界面(如广告),直接在本身的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供不多的资源,而真正的服务提供商却得不到任何的收益。
通俗来讲,就是存储在小哈图片服务器上图片,在未通过受权的状况下,被别人擅自使用了。
有一些相似于下图中爬虫网站,天天大批量的爬取文章,凭着本身网站权重高,即便不是原创,也能在百度中排名靠前,赚取广告费啥的,这里不得不吐槽一下百度。
好了,回归正题,这些爬虫网站没有本身的图片服务器(由于要钱),而是直接引用的原文的图片连接:
最终,这些图片的请求流量,全都由图片的全部者来买单。
OSS 是按使用量收费的服务,为了减小存储于 OSS 的数据被其余人盗链而产生额外费用,OSS自己是支持设置Referer,基于 HTTP 和 HTTPS header 中表头字段Referer 的防盗链方法。
咱们能够经过控制台为本身的存储空间设置 Referer 字段的白名单、以及是否容许 Referer 字段为空的请求访问。
接下来,进入阿里云控制台,设置 OSS 白名单,这里我设置为本身的网站域名 www.exception.site, 也就是说 header 请求头中, Referer 为 www.exception.site 的网站,才能被够容许访问,不然直接拒绝:
经过 curl
命令来访问一下 bucket 中的某张图片,此时 header 头中的 Referer 属性值为空,看下是否可以正常访问:
能够看到请求失败 AccessDenied
.
经过 -e
参数传递一个未设置在白名单中的地址,看可以访问成功:
依然不可以访问成功,测试正常!
再来验证下上面说的盗链网站是否还可以正常访问,首先咱们清空浏览器缓存:
Nice!图片已经打不开了。
这里小哈直接访问本身的网站来验证效果:
图片请求 header 头的 Referer 属性值与设置的一致,我的网站图片均可以正常访问。
除了防盗链的设置,目前来看按小时付费套餐已经不太合适了,在阿里云上购买一个下行流量包,半年6个月,每月50G流量,价格60块大洋,固然了,超出的得另算。
若是说将来流量继续增大的话,那就要考虑带过时时间的图片访问、CDN, 以及购买回源流量包了,那就是后话了,有机会小哈再给你们分享。下期见!
最近在网上发现一个不错的 PDF 资源《Java 核心知识&面试.pdf》分享给你们,不光是面试,学习,你都值得拥有!!!
获取方式: 关注公众号: 小哈学Java, 后台回复资源,既可免费无套路获取资源连接,下面是目录以及部分截图:
重要的事情说两遍,关注公众号: 小哈学Java, 后台回复资源,既可免费无套路获取资源连接 !!!