如何防止CDN被恶意刷量?
写在前面:原本博主建立这个小站,只是打算写一写日常生活的碎碎念(日记),方便日后回忆,也没想过/在乎有没有人看、会有多少人看,但是最近在不少站长群里发现有很多小白并不懂得这些而走了很多没必要的弯路,付出没必要的成本。所以从今天起我想写一些从建站初到现在五年以来总结的一些经验和教训,供大家参考/避雷。后续还会一些生活中我认为优秀的软件分享,欢迎大佬补充斧正!

很多站长都会给自己的网站使用CDN/云存储技术,从而实现动静分离,花不了多少钱却又可以享受全球加速服务,简直美滋滋。但是问题也很明显,就是万一被人盗刷流量,那么过一晚上第二天早上起床你就发现房子归服务器供应商(点名腾讯)了。

下面是友链某位朋友的遭遇。[1]

如何防止CDN被恶意刷量?插图-zyq.today

那么有没有办法规避呢?答案是有的!下面我将为大家提供一些我的思路。

一、开启鉴权

1.referer验证

这个是最简单也是很多站长普遍在用的方法了,可以防止一些基础的盗链、刷量。

1.何为referer?

Referer是一个HTTP请求头部字段,用于指示当前请求是从哪个页面链接跳转过来的。它记录了发出请求的页面的URL,作为请求的来源。

TA的主要作用是帮助网站分析和统计访问来源,以及实现防盗链。网站管理员可以根据Referer字段来判断请求的来源,从而对来自不同来源的请求采取不同的处理方式。

比如下图就是“Wp Statistics”通过referer来统计的部分来源信息。图示有130名访客通过PC百度搜索引擎到访本站,30名访客通过移动端百度来到本站,而36名访客通过谷歌搜索来到本站。

如何防止CDN被恶意刷量?插图1-zyq.today

2.何为盗链?

盗链(hotlinking)是一种将别人的内容嵌入到自己的网站或博客中,却不经过原始内容的所有者获得允许的极其恶劣行为。通常指的是将图片、视频和音频等较大媒体文件链接到自己网站上,费用由原始内容的所有者承担,而盗链者不承担任何费用,属于是赔了夫人又折兵

这里点名cnblog某博主盗用本站cur鼠标样式文件几个月之久!也许你只是抄代码把我网站内容一起搬过去了,这我不反对毕竟我也经常面向CSDN编程(,感谢你对本人眼光的认可,但是烦请下次做好本地化。

如何防止CDN被恶意刷量?插图2-zyq.today

如何防止CDN被恶意刷量?插图3-zyq.today

3.如何通过referer设置防盗链?

通常来说,你所使用的CDN服务商都会有这个服务,只需开启即可,这里以腾讯云为例。

如何防止CDN被恶意刷量?插图4-zyq.today

如何防止CDN被恶意刷量?插图5-zyq.today

需要注意的是:

1、以本站为例,“*.zyq.today”并不包含“zyq.today”,需要分别设置。

2、开启防盗链后如出现资源无法加载情况(一般Ctrl+F5刷新就行了,但是访问者可能不了解这些从而以为网站出问题了)需要勾选“允许空referer访问”,即允许浏览器直接访问你的资源,这在一定程度上增加了被刷的风险。

3、仅能对网站静态资源域名(比如本站img.zyq.today)开启referer防盗链,如果对主域名开启会造成用户无法直接在浏览器打开网站或者无法从他人网站(比如友链)跳转到你的网站。

4、如果你的网站没做动静分离,但是需要对部分资源比如图片等开启部分防盗链,请继续阅读。

4.欺骗性。

由于Referer字段可以被篡改,所以不能完全信任Referer,它只是作为一种参考信息。有些浏览器或者软件也提供了禁用或修改Referer的选项,用户可以自由设置Referer的内容,这意味着稍微高级一些的破坏者仍然可以爆刷你的CDN流量。

如何防止CDN被恶意刷量?插图6-zyq.today

2.回源鉴权

需要准备的知识储备:API网关/云函数有手就行

原文[2]作者已经两年不更新了,有很多失效过时的信息,这里将按照我自己折腾时的理解、方便大家阅读的方式重写原文。

1.在腾讯云CDN后台开启鉴权功能

配置和我一样就行。

如何防止CDN被恶意刷量?插图8-zyq.today

如何防止CDN被恶意刷量?插图9-zyq.today

 

如何防止CDN被恶意刷量?插图10-zyq.today

如何防止CDN被恶意刷量?插图11-zyq.today

2.创建云函数

https://console.cloud.tencent.com/tcb/env/index?rid=4

https://console.cloud.tencent.com/scf/list?rid=1

按照下图配置,没有说明的地方请保持默认

如何防止CDN被恶意刷量?插图12-zyq.today

点我下载需要上传的文件

操作完成后将显示下方页面,稍等或点击“立即前往”

如何防止CDN被恶意刷量?插图13-zyq.today

点击“编辑”

如何防止CDN被恶意刷量?插图14-zyq.today

向下拉,找到“环境变量”,如图配置,保存。

domain=https://img.zyq.today
singkey=2VmX8lV239cl4AX11
singname=sign
注意:
1、domain必须填入完整的CDN URL前面必须要有“https://”  ,后面不能有“/”
例如:https://img.zyq.today ——正确
img.zyq.today ——错误
https://img.zyq.today/ ——错误
img.zyq.today/ ——错误
2、singkey和singname分别对应鉴权密钥和签名参数,出现意外请切换备用鉴权密钥。
3、不要向任何人透露你的鉴权密钥!(我截图没打码是因为已经没在用这个方法了)

如何防止CDN被恶意刷量?插图15-zyq.today
如何防止CDN被恶意刷量?插图16-zyq.today

3.开启以及配置API网关

https://console.cloud.tencent.com/apigateway/service

如何防止CDN被恶意刷量?插图17-zyq.today
如何防止CDN被恶意刷量?插图18-zyq.today

 

 

如何防止CDN被恶意刷量?插图19-zyq.today

如何防止CDN被恶意刷量?插图20-zyq.today

路径填写:/sign/

如何防止CDN被恶意刷量?插图21-zyq.today

下一步——完成,不用任何配置,发布即可。

如何防止CDN被恶意刷量?插图22-zyq.today

 

4.控制访问

打开API网关,新建插件

https://console.cloud.tencent.com/apigateway/plugin-create?rid=1

如何防止CDN被恶意刷量?插图23-zyq.today

回到https://console.cloud.tencent.com/apigateway/service?rid=1

参考如下动图绑定插件

如何防止CDN被恶意刷量?插图24-zyq.today

 

5.价格预算

访问量不大的情况下仅需支付20/月的云函数费用即可。

如何防止CDN被恶意刷量?插图25-zyq.today

 

6.添加解析

添加鉴权域名解析

https://console.cloud.tencent.com/apigateway/service?rid=1

如何防止CDN被恶意刷量?插图26-zyq.today
如何防止CDN被恶意刷量?插图27-zyq.today

如何防止CDN被恶意刷量?插图28-zyq.today

如何防止CDN被恶意刷量?插图29-zyq.today

解析记录值为“公网二级域名”

等待解析生效后才能提交。

如何防止CDN被恶意刷量?插图30-zyq.today

7.更换路径

开启鉴权之后原来的所有资源路径都要改为鉴权路径,否则无法访问。

以我为例:img.zyq.today  ->  sign.zyq.today/sign

批量替换路径的方法之一是利用插件来实现,这面推荐一个插件叫做“Hide My WP”

安装后点击“映射”——“网址映射”添加要替换的路径即可。

如何防止CDN被恶意刷量?插图31-zyq.today

插件的使用需要配置并重启NGINX,这里不过多赘述,有需要的可以留言考虑以后出一篇文章。

 

 

二、EdgeOne

是不是觉得上面的方法太繁琐了?反正我是这么觉得。正好腾讯云最近新出了个EdgeOne,我认为完全可以替换掉上面的回源鉴权方案。

https://console.cloud.tencent.com/edgeone

正好现在新手活动便宜,续费也不贵(¥9.9/月),何乐不为呢?

优惠领取页面https://cloud.tencent.com/act/pro/edgeone_new

如何防止CDN被恶意刷量?插图32-zyq.today

用法过于白给,这里不讲了,简单说下我踩过的坑吧(反馈了无数BUG)。

1.尽量使用CNAME接入

不要NS,有BUG,别问为什么,信我的。

2.存储桶授权报错问题。

如何防止CDN被恶意刷量?插图33-zyq.today

临时解决方法

如何防止CDN被恶意刷量?插图34-zyq.today

但是仍然会遇到这个问题

如何防止CDN被恶意刷量?插图35-zyq.today

在这之前遇到这个感叹号,EO是不能用的,不过现在应该修复了

对此,

如何防止CDN被恶意刷量?插图36-zyq.today

3.防盗链配置在这里

如何防止CDN被恶意刷量?插图37-zyq.today

如何防止CDN被恶意刷量?插图38-zyq.today

不过注意,现在个人版还不能允许空referer(标准版可以),腾讯云表示在优化了。

不能设置空referer的后果就是正常用户访问网站是有概率出现【responded with a status of 567 ()】报错,567的意思和CDN的514一个含义,都是触发了防盗链规则,其实这时候用户刷新一下网页多数时候就解决了,但是普通用户只会以为网站出了问题。

如何防止CDN被恶意刷量?插图39-zyq.today

4.图片处理

如何防止CDN被恶意刷量?插图40-zyq.today

这个就相当于CDN里面的图片优化,但是有个地方要注意。就是EO中如果源文件处理失败不会返回原图,需要在这部分处理失败的图片后面加上【/ignore-error/1】参数。

例如

原图(可以访问):https://img.zyq.today/files/2023/08/Video_2023-08-06_155219.gif

处理后的图片(无法访问,提示gif 的分辨率过高或者帧数太多):https://img.zyq.today/files/2023/08/Video_2023-08-06_155219.gif?imageMogr2/format/webp/interlace/1/quality/100

加了参数的图片(返回原图,可以访问):https://img.zyq.today/files/2023/08/Video_2023-08-06_155219.gif?imageMogr2/format/webp/interlace/1/quality/100/ignore-error/1

5.其他需要注意的

目前个人版的EO还不能完全代替SCDN来防御攻击,被攻击仍然可能造成高额账单,请悉知!

我建议仅目前和腾讯云的存储桶耦合较深的用户使用EO,且不建议主页使用EO来代替CDN。

防止高额账单可以考虑多吉云,节点还有控制台都和腾讯云完全一样,账单延迟低而且价格还便宜。

如何防止CDN被恶意刷量?插图41-zyq.today

本来没想着挂链接的(因为目前也没在用),但是刚刚看到可以推广反余额的活动了,所以看在我码这么多字的份上能点下我的链接注册么(

如何防止CDN被恶意刷量?插图42-zyq.today
如何防止CDN被恶意刷量?插图43-zyq.today

https://www.dogecloud.com/?iuid=6724

官网邀请链接,注册前可以先了解下多吉云。

https://console.dogecloud.com/register.html?iuid=6724

直接注册的邀请链接。

三、上高防SCDN

这是我目前使用的策略了,简单粗暴。

我现在使用的是酷盾赞助的SCDN,效果如何我还在进行测试,如果可以的话未来从各种维度专门写一篇文章推荐给大家

就算是推广我也会坚持产品质量为底线,绝对不会推荐非优质品或者睁眼说瞎话。

如何防止CDN被恶意刷量?插图44-zyq.today

每个月多掏点钱也好于被打一次欠费几千,我是这样想的。就算酷老板不赞助我也会另购SCDN的~

 

文章写完啦!点击下方链接浏览~

https://zyq.today/archives/117868

四、多做事,少张扬

其实一般情况下,如果你不去群里求锤是很安全的,但是很多站长都有M心理,总是想看看自己网站防御怎么样,当然也有的是为了蹭个IP之类的——通常在群名片没有规定的情况下使用网站作为自己的群昵称、写新文章就批量转发各个群、更有甚者天天吹自己抗住多少多少CC有能耐打死我之类的话,这种纯属M属性爆发,求锤得锤。最后被锤了还能水篇文章,打死了就说群友是黑产、老鼠屎巴拉巴拉,没打死就一顿嘚瑟,显得自己很NB,殊不知自己才是口中那颗最臭的老鼠屎。CDN又不是你家的,钱也不是你掏的真不明白你有什么NB的地方。

如何防止CDN被恶意刷量?插图45-zyq.today

只能说人的眼界很重要,一个人永远也赚不到认知以外的钱

 

 

有任何问题欢迎在下方留言!

参考

  1. ^友链终成博客被刷量原文链接:https://blog.zceee.com/461.html
  2. ^回源鉴权高度参考文章:利用腾讯云API网关和云函数来保护CDN流量不被恶意刷量,感谢作者的付出!
✔ 文末未特别声明时,以下内容有效。
本文标题:如何防止CDN被恶意刷量?
本文作者:Zephyrus
本文链接:https://zyq.today/archives/106740
版权声明:本站采用 BY-NC-SA 进行许可。转载请注明出处!

评论

  1. 置顶
    Android Chrome
    江苏省 移动数据上网公共出口
    2月前
    2023-8-09 0:50:20

    腾讯云被刷5000块的朋友来了,教程非常棒,个人站长建议学习一下,我的博客部分图片资源已经放到微云上面了

    • 终成
      Android Chrome
      江苏省 移动数据上网公共出口
      2月前
      2023-8-09 0:57:13

      还有我在阿里云解析上面做了限制,因为看博客的大部分是国内的,所以我干脆把非中国大陆区的解析全改成了127.0.0.1了,能避免恶意的境外流量,但是也拦截了中国港澳台地区了。还有最后说的是不是名称是四字的博主呀

      • 博主
        终成
        Windows Chrome
        辽宁省沈阳市 移动
        2月前
        2023-8-09 1:01:05

        《 那 四 个 字 》

    • 博主
      终成
      Windows Chrome
      辽宁省沈阳市 移动
      2月前
      2023-8-09 0:59:49

      所以今天又研究了一晚上,发现还是不能完全规避被刷风险。果然折腾的尽头是放弃存储桶

      • Zephyrus
        Android Chrome
        江苏省 移动数据上网公共出口
        2月前
        2023-8-09 1:03:07

        我懒得折腾了,图片都放微云去了,虽然上传、获取链接有点麻烦,但是起码支持外链,不过坏处是好像只能搞静态的图片,随缘吧,但是dns解析我还是建议分线路解析,或者跟我一样干脆点,直接禁中国港澳台和海外

        • 博主
          终成
          Windows Chrome
          辽宁省沈阳市 移动
          2月前
          2023-8-09 1:08:03

          我主要是静态资源(图片)的问题,都在存储桶,万一被刷风险还是挺大的。至于其他资源都是人家KDUN赞助的不限SCDN流量随便他们怎么刷(所以我在想把图片资源也放到服务器经过KD的SCDN就没有风险了)。

  2. Pang
    Windows Chrome
    河北省保定市 联通
    1月前
    2023-8-12 17:09:52

    博主你好,EdgeOne个人版有没有流量预警功能,我看特权对比好像只有标准版有?那还是比较危险的 。另外,小白请教一下只用对象存储做图床使用,开启referer是不是比较安全了?🤐

    • 博主
      Pang
      Windows Chrome
      辽宁省沈阳市 移动
      1月前
      2023-8-12 17:16:55

      没有预警功能,而且其他功能也有很大限制,至于referer,开了只能保证一定程度上不被盗链,想刷还是可以做到的,文章中有写~

  3. 小熊
    iPhone Safari
    四川省雅安市 移动
    1月前
    2023-8-12 9:51:23

    阿里云企业邮好像也不会泄露服务器IP吧

    • 博主
      小熊
      Android Chrome
      北京市 广电网
      1月前
      2023-8-12 11:37:34

      是的,有很多不会泄露ip的方案,具体可以试着给自己发一封然后查看邮件源代码。

  4. Windows Edge
    广东省汕头市 电信
    2月前
    2023-8-10 14:59:53

    好文章,很详细

    • 博主
      Azad
      Windows Chrome
      辽宁省沈阳市 移动
      2月前
      2023-8-10 15:02:10

      感谢认可!

  5. Windows Chrome
    北京市 北京电信互联网数据中心
    2月前
    2023-8-08 14:54:29

    无所谓,非盈利个人网站我直接摆烂,裸奔也是个选择,只要不产生经济损失就好,远离那些所谓站长QQ群,能减少99%被攻击的可能性。

    • 博主
      陶小桃Blog
      Windows Chrome
      辽宁省沈阳市 移动
      2月前
      2023-8-08 14:58:37

      正确的、中肯的、一语中的的。其实很多人被打都是自己去群里吹水导致的,又不是什么盈利网站人家真没必要打你。
      很多人套CDN都是看价格不贵又能加速访问才开始的,其实忽略了很多潜在风险。

  6. 柠宇
    Android Chrome
    江苏省南通市 移动
    2月前
    2023-8-08 14:15:45

    一般攻击流量大都来自境外 ,如果实在想开启境外可以交给cf

    • 博主
      柠宇
      Windows Chrome
      辽宁省沈阳市 移动
      2月前
      2023-8-08 14:30:01

      确实是个很好的思路,dns分线路解析,境外的交给cf。我另外一个站就是这么做的

    • 柠宇
      柠宇
      Android Chrome
      江苏省 移动数据上网公共出口
      2月前
      2023-8-08 14:36:11

      而且好多个人博客会用腾讯,微软之类的邮箱/企业邮箱服务发信 ,什么评论通知和注册邮件之类的。这些服务调用是会显示服务器的调用IP的,上来源站就被打掉惹 。只有阿里云邮,Gmail企业邮还有一些会自动替换成服务商IP

      • 博主
        柠宇
        Windows Chrome
        辽宁省沈阳市 移动
        2月前
        2023-8-08 14:38:32

        考虑到这点了,所以我现在用的发信服务是腾讯云的,不会泄露服务器IP,以后还准备写篇文章讲讲反查IP的几个方法

        • 柠宇
          Zephyrus
          Windows Chrome
          江苏省南通市 移动
          2月前
          2023-8-08 15:21:06

          哈哈雀食,我看腾讯的免费额度是1000封,不知道是月度的还是总的 。我用的是阿里云邮,好像是明天两百封免费额度

          • 柠宇
            Windows Chrome
            江苏省南通市 移动
            2月前
            2023-8-08 15:22:02

          • 博主
            柠宇
            Windows Chrome
            辽宁省沈阳市 移动
            2月前
            2023-8-08 15:26:27

            腾讯是账号总量1000封,但是可以按量计费,阿里是每天200封,但是超过了必须购买套餐包不能按量付费,而且最便宜的好像一年差不多100块几万封,同等数量的邮件腾讯按量计费的价格和阿里的套餐几乎一样。所以长期来看还是腾讯的好一些,除非能保证将来每天邮件都不会超过200,那就可以一直白嫖阿里的。

          • Zephyrus
            Windows Chrome
            江苏省南通市 移动
            2月前
            2023-8-08 15:35:42

            可恶啊可恶,我刚刚特意去看了,阿里云下个月要取消这个服务了,改为和腾讯云一样了,总免费额度为2000(关于按量计费,我去看了阿里云的文档,文档里说按量计费是默认的,开通邮件推送就默认按照按量计费–如果没有资源包,价格为2R/1000封,腾讯云的价格为1.9R/1000封,总免费额度1000)

          • 博主
            柠宇
            Windows Chrome
            辽宁省沈阳市 移动
            2月前
            2023-8-08 15:38:51

            那就是阿里最近改了规则然后出了按量计费,不过这样看来还是腾讯便宜一些

          • 柠宇
            Windows Firefox
            广东省广州市 联通
            2月前
            2023-8-08 19:33:31

            沃日 阿里最终还是对这个产品下手了~

          • 博主
            龙笑天
            Windows Chrome
            辽宁省沈阳市 移动
            2月前
            2023-8-08 21:30:54

            不能白嫖了(

  7. Windows Edge
    重庆市 移动
    2月前
    2023-8-06 21:38:03

    想起了某个用CF的站长说抗住了多少攻击😅

    • 博主
      w4j1e
      Windows Chrome
      辽宁省沈阳市 移动
      2月前
      2023-8-06 21:41:31

      卧槽你这头像,,,PTSD了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
😍
😘
😜
😝
😏
😒
🙄
😳
😔
😫
😱
😭
😶
🌚
😣
🤨
😣
🤐
😪
🤤
🥵
🤮
😨
😱
😓
🤬
👴
🤡
🙈
💊
🙏
🤺
💩
👻
🙌
🖕
👍
👫
👌
🙏
👀
🐒
🔪
UID: 503262632
bilibili
颜文字
Emoji
genshin
小恐龙
amashiro.natsuki
上一篇
下一篇