前言

最近几天群里好几位老哥被攻击,cdn被盗刷,睡一觉起来破产那种。吓得我们这些小白瑟瑟发抖,表示群里有内鬼,都不敢在群里放链接了。还好我从来没在群里发过链接,但是还是要防患于未然。马上爬起来折腾,目的要在保持访问速度的同时兼顾安全。

CDN防盗刷

[scode type=“blue”]设置防盗链[/scode]

我的图片都是使用七牛云储存的,当然cdn也是七牛云的cdn。七牛云的https访问两毛多1G。cdn被盗刷之后可能一觉醒来就被刷走了1000G,所以CDN防护是重中之重。七牛云为我们提供了几种防护措施

配置项 描述
Referer 防盗链 配置 Request Header 中 referer 黑白名单,从而限制访问来源。
时间戳防盗链 设置密钥,配合签名过期时间来控制资源内容的访问时限。
回源鉴权 配置回源验证策略,对 CDN 接收到的访问请求进行鉴权,适用于对防盗链有很高实时性要求的场景。
IP 黑白名单 允许或者禁止某些 IP 或 IP 段的访问,帮助您解决恶意 IP 盗刷、攻击等问题。

这几个配置最有用的还是Referer防盗链,时间戳防盗链和回源鉴权太复杂,IP黑名单属于亡羊补牢。

Referer防盗链开启白名单模式,把自己网站填进去,不允许空Referer。

这样设置好了之后,要想访问图片必须通过白名单里面的网站访问,直接访问图片就访问不了了。

[scode type=“blue”]设置流量带宽阈值告警[/scode]

设置流量告警,当流量超过设置的阈值会及时发短信提醒自己,制定对应的应对策略。流量告警阈值尽量设置低一点,太高可能触发不了,太低可能正常访问就会触发,需要根据实际情况设置。我这里设置的是流量模式,阈值50mb,仅供参考。

源站防护

上面cdn防护设置好了之后,如果攻击的人使用cc攻击,直接访问我们源站的话还是有可能会被刷流量的。这里可以使用宝塔的一款插件"Nginx免费防火墙",在宝塔面板的软件商店就能搜到。安装之后需要配置一下:

这里一定要勾上禁国外,因为90%的攻击都是来自于国外。国外带宽大,流量多,然后又闲的慌。他们的攻击成本很低。

[scode type=“red”]防火墙与typecho的兼容问题[/scode]

在使用防火墙的过程中发现,修改文章会触发防火墙的post过滤,导致请求被误拦截。解决方法是:

选择防火墙的全局配置,关闭post拦截

Q.E.D.