網(wǎng)站又被攻擊,我心態(tài)崩了
之前很多朋友在我的網(wǎng)站上只是小打小鬧,很多 “攻擊” 根本算不上 “攻擊”,充其量就是欺負(fù)我網(wǎng)站剛上線,找找 Bug 而已。改了幾十個(gè) Bug 后,發(fā)現(xiàn)常見(jiàn)的攻擊其實(shí)就這么幾類:
1. XSS 腳本注入
最低級(jí)的就是在輸入框中直接輸入惡意 JavaScript 腳本,如果沒(méi)有對(duì)此類文本進(jìn)行特殊處理,那么會(huì)直接在前端執(zhí)行,從而影響網(wǎng)站的運(yùn)行,比如彈個(gè)框:

雖然前端很多富文本編輯器自帶了 XSS 處理,但終究是不保險(xiǎn)的。所以我給所有用戶提交數(shù)據(jù)的后端接口補(bǔ)充了 XSS 過(guò)濾,保證返回給前端的數(shù)據(jù)已經(jīng)是 “相對(duì)正?!?的了。
比如下面的輸入,加載圖像時(shí)發(fā)生了錯(cuò)誤,會(huì)顯示一個(gè)對(duì)話框:
<img?src="#"?onError="alert('魚(yú)皮')"?/>
經(jīng)過(guò)后端處理后,會(huì)被轉(zhuǎn)義成:
<img?src="#"?/>
仔細(xì)掃了一下數(shù)據(jù)庫(kù),光 XSS 的內(nèi)容就有上百條了,不愧是最主流、低成本的攻擊手段:

2. 提交非法數(shù)據(jù)
非法數(shù)據(jù)有很多種,比如灌水、無(wú)意義的內(nèi)容:


又或者繞過(guò)前端的字?jǐn)?shù)限制,直接調(diào)用后臺(tái)接口來(lái)提交超長(zhǎng)內(nèi)容,從而在展示數(shù)據(jù)時(shí)影響頁(yè)面的加載時(shí)間、甚至導(dǎo)致頁(yè)面崩潰。比如下面這貨,在搜索框里塞了幾 MB的數(shù)據(jù):

也是經(jīng)驗(yàn)不足吧,我一開(kāi)始真沒(méi)想到會(huì)有這種騷操作,看來(lái)還是得嚴(yán)格限制任何用戶提交的內(nèi)容。
唉,這種攻擊是最難防護(hù)的。人言可畏,要完全解決根本不可能,只能投入人力來(lái)管理了,也歡迎大家隨手舉報(bào),給網(wǎng)站一個(gè)健康良好的生態(tài)環(huán)境。
3. 頻繁提交數(shù)據(jù)
就是瘋狂調(diào)后臺(tái)接口來(lái)插入無(wú)意義的數(shù)據(jù),比如有個(gè)同學(xué)一次性刷了幾千條舉報(bào)數(shù)據(jù)來(lái)舉報(bào)我,給我氣的不行。

所以還是要限制下每位用戶提交信息的數(shù)量呀!
雖然這類攻擊很溫和,但也是需要人工花時(shí)間來(lái)處理的,不僅耽誤我的時(shí)間,也會(huì)影響正常用戶的體驗(yàn)。所以我在網(wǎng)站主頁(yè)右側(cè)添加了公告:即日起,本站禁止任何測(cè)試行為,違者直接永久封號(hào)!
反正一個(gè)微信號(hào)只能注冊(cè)一個(gè)用戶,亂搞的成本也是有限的。
但昨天晚上的攻擊就不是開(kāi)玩笑了,有同學(xué)直接搞拒絕服務(wù)攻擊了,平均每分鐘調(diào)用我的接口 1000 萬(wàn)次?。。?/p>
這如果沒(méi)有專業(yè)的防護(hù),并發(fā)再高,也扛不住??!所以系統(tǒng)在那段時(shí)間完全掛掉了。
其實(shí)面對(duì)這種量級(jí)的 CC 或 DDOS 攻擊,不花錢(qián)一般是搞不定的,但對(duì)于我這樣一個(gè)完全免費(fèi)、不賺錢(qián)的網(wǎng)站,完全承擔(dān)不起上高防護(hù)產(chǎn)品的費(fèi)用??!
而且這種攻擊的成本很低、也完全不需要什么技術(shù)含量,真的是防不勝防;即使你被攻擊了去找云服務(wù)商,只要損失金額不大、只要不報(bào)警,壓根兒沒(méi)人理你。所以當(dāng)時(shí)搞的我心態(tài)有點(diǎn)崩,覺(jué)得前途一片迷茫啊。
我真的很難想象,究竟是內(nèi)心多么黑暗、多么卑微的人,會(huì)去做這種事呢?
想想這種人真是可憐哈哈,如果用這點(diǎn)本事攻擊我的網(wǎng)站能給他帶來(lái)一絲慰藉,那我覺(jué)得也值了。

但是,你把我的網(wǎng)站攻破了、搞崩了,除了暴露了你內(nèi)心的丑陋,對(duì)我來(lái)說(shuō)又有什么影響呢?反正我東西做了、代碼有了、經(jīng)驗(yàn)漲了;再說(shuō)網(wǎng)站本身也不賺錢(qián),掛了就掛了唄,大不了我就在公眾號(hào)給大家分享面試題咯。
而且不會(huì)真的以為這點(diǎn)攻擊我就放棄了吧? 天真,我一個(gè) 23 歲的程序員大爺,我怕什么?!


如何用敏捷搞垮團(tuán)隊(duì)?

逃離一線!從上海舉家回成都七年,現(xiàn)在怎么樣了?

聊聊索引失效的10種場(chǎng)景,太坑了
