封面
分享几个自用的站点防盗刷的小方法

最近在群里观察到有一些小伙伴被某山西的 IP 盗刷了,扣了 400 多 G 的流量。我前段时间也是因为站点监测总被该 IP 盗刷,导致我将它从我的国内云服务器上转到 Vercel 上部署了。建站这么久了,发现这些人盗刷资源都是那几个套路,在此分享一下给各位一点小小的参考。

在站点监测(status 二级域名,目前已关闭)被盗刷的几天,它频频触发用量封顶,导致站点被关停数次。除了 IP 是山西的以外,我注意到它每次盗刷的资源都是 JS、CSS 文件。从下图可以看到,index.js 文件比主体的 HTML 文件要大上几十倍,所以它盗刷大的 JS 文件比盗刷小的 HTML 文件有效。另外,我们的站点都托管于中国大陆,在我注意到的盗刷中,服务器及加速地区都是国内。所以盗刷者使用了国内 IP 就是为了更快速地访问站点的资源,然后进行盗刷。

status.qi1.website 中各文件的大小
status.qi1.website 中各文件的大小

再看下本站 imqi1.com 中各文件的大小。

imqi1.com 各文件的大小
imqi1.com 各文件的大小

只要网页内容不是特别多的,很多网页都是 CSS、JS 文件比 HTML 文件更大,所以我要分享的第一个方法就是将所有静态资源,如 CSS、JS、图片、音视频等放在云存储中,然后为云存储加防盗链,只有站点可以访问,小站的话加一个 Referer 校验就足够了。将静态资源放到云存储中最大的优点就是可以大大减轻原站的压力,防盗链也会起到一部分防盗刷的效果(防盗刷的是主站,这里不包含云存储的防盗刷)。

在这里值得一提,公益服务最怕的就是被盗刷,比如杜老师的图床。杜老师的图床不是总被攻击吗,我觉得杜老师的图床可以加一个防盗链的功能(我不是去不图床的用户,我不知道杜老师的图床有没有防盗链功能),给注册的用户加一个授权域名,只有该域名才能访问图床内的属于该用户的资源。这样做感觉可以缓解一些图床被攻击的问题。

然后呢剩下的方法就很简单了,都是比较常用的方法,在不影响正常使用的情况下,有的都可以开一下。

速率限制
速率限制

用量封顶策略
用量封顶策略

限制地域访问
限制地域访问

境内解析到国内CDN,境外解析到CloudFlare
境内解析到国内CDN,境外解析到CloudFlare

Referer防盗链
Referer防盗链

时间戳防盗链
时间戳防盗链

最简单的方法,其实就是使用长期免费且稳定的服务,比如 Vercel + CloudFlare,或者又拍云联盟的云存储,即使被盗刷,我们也不需要支付高额的费用。

想详细了解防盗刷的可以阅读下面的文章,讲的很详细。

COS&CDN防盗刷方案 - 腾讯云精选文章

评论
评论即代表你已阅读并同意评论协议
  1. w4j1e
    w4j1e hin.cool

    其实 refer 也是可以伪造的,所以这种防刷方式不够保险。最好是搭配上达量暂停 服务,一定程度上可以避免天价账单。

    1个月前
  2. GoodBoyboy

    我记得referer可以绕过的,防盗刷还是要设置合理的请求次数阈值

    8个月前 湖南联通
  3. obaby

    各种 cc 一般不会直接针对资源文件,cc 的是正常的页面。所以靠 refer 很难解决刷量的问题。
    我已经放弃大厂的存储以及 cdn 了。

    8个月前 山东联通
  4. 揽星
    揽星 lanxing.net

    杜老师图床没有防盗链,但是那个图床程序好像也没有类似域名授权防盗链的功能吧

    8个月前 >
    1. 棋
      imqi1.com 回复 @揽星

      最好还是加一个

      8个月前 辽宁电信
  5. 刘郎
    刘郎 yjvc.cn

    不错 这个方法值得参考使用👍

    8个月前 贵州移动
内容加载中...