网站安全-图床的防护与优化

之前说了 CDN 的防护措施,接下来说说七牛云的防护。

七牛云是在第二天才生成账单的(比如今天 8~9 点会结算昨天的费用)。如果欠费了,在欠费保护期内还能使用,过了后就会停用,所以会产生这种赊账的情况。

防盗链

对于网络攻击的话,有以下方式来防护:

  1. 设置告警,参考官方文档。但只有邮件和短信的方式,如果是三更半夜的话可能不能及时做出反应
  2. 设置防盗链与白名单:Referer 防盗链,这个在博客搭建系列中的图床篇也讲过。除此之外,还有时间戳防盗链IP 黑名单等,可以在 CDN => 域名管理 => 配置 => 访问控制 进行设置
  3. 设置回源鉴权:参考 回源鉴权 - 七牛开发者中心。Referer 是可以伪造的,而回源鉴权就是每次访问图片时需要带上参数,去自己的一个服务器上鉴权,通过了才能访问图片。该功能设置起来较为麻烦

按需选择,一般来说 Referer 防盗链就够了。

设置单 IP 访问频率限制 QPS,以及带宽

该设置很有用,甚至可以说是防止被刷流量的核心操作。

单 IP 访问阈值,就是限制每秒多少次请求,这个需要根据你的网站以及资源情况进行设置,例如平均每篇博客 15 张图片,那么就可以设置成 15。

这个设置没法直接设置,需要提交工单找工程师进行设置:七牛技术支持平台

​​

配置告警

预警设置需要根据自己的网站实际情况。可以查看自己平时正常的流量和带宽(在 CDN-概览中,可以看今天和本月的情况):

​​

然后在告警配置中添加:

​​

提高命中率

我们使用了 CDN,那么自然是希望别人访问我们网站时,优先从 CDN 服务器获取数据;如果 CDN 没有,才会回源,回源就相当于没有命中(和计算机组成原理中 Cache 的命中率类似)。

命中率越高,说明回到你的服务器/源站的数量越少。一方面你的服务器压力越轻,另一方面浏览的体验也越好。

七牛开发者中心中搜索命中率,可以看到相关文档:命中率_使用指南

登录七牛开发者平台后,进入 CDN 控制台,选择【统计分析】,点击【命中率】进入查询界面:

然后可以查询命中率(最长统计最近 30 天的):

如果你的命中率较低,原因可能是:

  1. 源站动态资源较多,多为不可缓存的内容,也会导致频繁回源拉取。
  2. 资源访问量较低,文件热度不够,CDN 收到请求较少无法有效命中缓存。
  3. 缓存配置不合理,缓存时间过短,CDN 节点频繁回源。
  4. 访问资源的 URL 带参数,并且参数不断变化。当用不同的 URL 去访问 CDN 的时候,CDN 会认为这是一个新请求(即便这两个不同的 URL 其实是访问到了同一个文件,并且该文件已经缓存在节点上),会回源去拉取所请求的内容。例如,有时候给图片后面带个时间参数,或者长宽、水印等参数,都会影响。

那么对应的解决方法为(先打开配置,参考缓存配置 - 七牛开发者中心):

  1. 延长静态资源的缓存期。例如图片等资源,后缀为 .jpg;.jpeg;.png;.bmp;.gif;.webp;.ico​,缓存为 1 年(七牛云最多支持一年)
  2. 根据自身情况,选择是否忽略 URL 参数

参考

降低被恶意访问、盗量的风险_最佳实践_对象存储 - 七牛开发者中心

这几个方法可以大大提高 CDN 的命中率,以七牛云对象存储为例_设置缓存时长和忽略参数 - 陶小桃 Blog

七牛云系列文章(3):防止七牛云 CDN 被恶意刷爆流量的思路和措施 - 陶小桃 Blog

七牛云 IP 黑名单-防止流量盗刷-节约 30% 流量费用

七牛流量被盗刷后! - 明月登楼的博客

posted @ 2024-07-24 15:35  peterjxl  阅读(15)  评论(0编辑  收藏  举报