網(wǎng)站又被攻擊,我心態(tài)崩了
大家好,我是魚皮。如題,昨天晚上本來想寫篇文章的, 但是沒想到我的網(wǎng)站又又又又被攻擊了,而且這次不止一位同學在同時攻擊、十分嚴重。所以寫文章未遂,花了大量的時間來排查和應對攻擊。
之前很多朋友在我的網(wǎng)站上只是小打小鬧,很多 “攻擊” 根本算不上 “攻擊”,充其量就是欺負我網(wǎng)站剛上線,找找 Bug 而已。改了幾十個 Bug 后,發(fā)現(xiàn)常見的攻擊其實就這么幾類:
1. XSS 腳本注入
最低級的就是在輸入框中直接輸入惡意 JavaScript 腳本,如果沒有對此類文本進行特殊處理,那么會直接在前端執(zhí)行,從而影響網(wǎng)站的運行,比如彈個框:

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

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


又或者繞過前端的字數(shù)限制,直接調用后臺接口來提交超長內容,從而在展示數(shù)據(jù)時影響頁面的加載時間、甚至導致頁面崩潰。比如下面這貨,在搜索框里塞了幾 MB的數(shù)據(jù):

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

所以還是要限制下每位用戶提交信息的數(shù)量呀!
雖然這類攻擊很溫和,但也是需要人工花時間來處理的,不僅耽誤我的時間,也會影響正常用戶的體驗。所以我在網(wǎng)站主頁右側添加了公告:即日起,本站禁止任何測試行為,違者直接永久封號!
反正一個微信號只能注冊一個用戶,亂搞的成本也是有限的。
但昨天晚上的攻擊就不是開玩笑了,有同學直接搞拒絕服務攻擊了,平均每分鐘調用我的接口 1000 萬次!!!

這如果沒有專業(yè)的防護,并發(fā)再高,也扛不住啊!所以系統(tǒng)在那段時間完全掛掉了。
其實面對這種量級的 CC 或 DDOS 攻擊,不花錢一般是搞不定的,但對于我這樣一個完全免費、不賺錢的網(wǎng)站,完全承擔不起上高防護產(chǎn)品的費用啊!
而且這種攻擊的成本很低、也完全不需要什么技術含量,真的是防不勝防;即使你被攻擊了去找云服務商,只要損失金額不大、只要不報警,壓根兒沒人理你。所以當時搞的我心態(tài)有點崩,覺得前途一片迷茫啊。
我真的很難想象,究竟是內心多么黑暗、多么卑微的人,會去做這種事呢?
想想這種人真是可憐哈哈,如果用這點本事攻擊我的網(wǎng)站能給他帶來一絲慰藉,那我覺得也值了。

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

最后,再發(fā)個招募令,有網(wǎng)絡安全方面的大佬,歡迎在留言中留下自己的微信號,必有重謝!
往期推薦
