查看原文
其他

网站又被攻击,我心态崩了

鱼皮 程序员鱼皮 2022-08-14

大家好,我是鱼皮。如题,昨天晚上本来想写篇文章的, 但是没想到我的网站又又又又被攻击了,而且这次不止一位同学在同时攻击、十分严重。所以写文章未遂,花了大量的时间来排查和应对攻击。

之前很多朋友在我的网站上只是小打小闹,很多 “攻击” 根本算不上 “攻击”,充其量就是欺负我网站刚上线,找找 Bug 而已。改了几十个 Bug 后,发现常见的攻击其实就这么几类:

1. XSS 脚本注入

最低级的就是在输入框中直接输入恶意 JavaScript 脚本,如果没有对此类文本进行特殊处理,那么会直接在前端执行,从而影响网站的运行,比如弹个框:

虽然前端很多富文本编辑器自带了 XSS 处理,但终究是不保险的。所以我给所有用户提交数据的后端接口补充了 XSS 过滤,保证返回给前端的数据已经是 “相对正常” 的了。

比如下面的输入,加载图像时发生了错误,会显示一个对话框:

<img src="#" onError="alert('鱼皮')" />

经过后端处理后,会被转义成:

<img src="#" />

仔细扫了一下数据库,光 XSS 的内容就有上百条了,不愧是最主流、低成本的攻击手段:

2. 提交非法数据

非法数据有很多种,比如灌水、无意义的内容:

又或者绕过前端的字数限制,直接调用后台接口来提交超长内容,从而在展示数据时影响页面的加载时间、甚至导致页面崩溃。比如下面这货,在搜索框里塞了几 MB的数据:

也是经验不足吧,我一开始真没想到会有这种骚操作,看来还是得严格限制任何用户提交的内容。

唉,这种攻击是最难防护的。人言可畏,要完全解决根本不可能,只能投入人力来管理了,也欢迎大家随手举报,给网站一个健康良好的生态环境。

3. 频繁提交数据

就是疯狂调后台接口来插入无意义的数据,比如有个同学一次性刷了几千条举报数据来举报我,给我气的不行。

所以还是要限制下每位用户提交信息的数量呀!


虽然这类攻击很温和,但也是需要人工花时间来处理的,不仅耽误我的时间,也会影响正常用户的体验。所以我在网站主页右侧添加了公告:即日起,本站禁止任何测试行为,违者直接永久封号!

反正一个微信号只能注册一个用户,乱搞的成本也是有限的。

但昨天晚上的攻击就不是开玩笑了,有同学直接搞拒绝服务攻击了,平均每分钟调用我的接口 1000 万次!!!

这如果没有专业的防护,并发再高,也扛不住啊!所以系统在那段时间完全挂掉了。

其实面对这种量级的 CC 或 DDOS 攻击,不花钱一般是搞不定的,但对于我这样一个完全免费、不赚钱的网站,完全承担不起上高防护产品的费用啊!

而且这种攻击的成本很低、也完全不需要什么技术含量,真的是防不胜防;即使你被攻击了去找云服务商,只要损失金额不大、只要不报警,压根儿没人理你。所以当时搞的我心态有点崩,觉得前途一片迷茫啊。

我真的很难想象,究竟是内心多么黑暗、多么卑微的人,会去做这种事呢?

想想这种人真是可怜哈哈,如果用这点本事攻击我的网站能给他带来一丝慰藉,那我觉得也值了。

但是,你把我的网站攻破了、搞崩了,除了暴露了你内心的丑陋,对我来说又有什么影响呢?反正我东西做了、代码有了、经验涨了;再说网站本身也不赚钱,挂了就挂了呗,大不了我就在公众号给大家分享面试题咯。

而且不会真的以为这点攻击我就放弃了吧? 天真,我一个 23 岁的程序员大爷,我怕什么?!

最后,再发个招募令,有网络安全方面的大佬,欢迎在留言中留下自己的微信号,必有重谢!


往期推荐

绝了,小白都能用的反编译神器!

这个 Bug,给我整得一愣一愣!

2分钟,我把网站性能优化了3倍!

编程导航出新专栏啦!

我做的免费面试刷题网,炸了!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存