網站出現bug,我深夜被叫醒處理,用一個觸發器解決了問題

凌晨兩點,我正在睡夢之中,此時電話忽然想起,在漆黑的深夜中顯得格外刺耳。

這個時間點電話響了肯定沒好事,因爲我的手機在夜間模式下,除非被同一個電話號碼打三次,否則是靜音,因此電話那邊的人肯定有急事找我。我心一下子緊繃,睡意全無。

來電的是一個陌生的號碼

“喂”我接通電話

“是xxx嗎”電話那頭是一個妹子的聲音,說話聲音有點快, 顯得很急切

“是我,你是哪位,有什麼事嗎” 我說

“我是公司客服部的同事,是這樣的,有用戶反映我們的網站的文章評論內容被注入了大量的非法廣告,我們查到這塊功能是你負責的,所以直接聯繫你,希望你能儘快處理下”妹子回答

評論系統剛剛升級過,難道出BUG了,我心裏一突

“好的,我馬上看一下,處理好了給你回覆”

掛掉電話,起身穿上衣服,打開電腦,打開網站,隨便點開一篇首頁的熱文,下拉到評論處,果然評論裏有大量鏈接內容,裏面都是一些不堪入目的內容。 點開另一篇文章,評論處也是如此。

這可是對公司口碑有影響的事故,我嚇出一身冷汗,必須趕緊處理。

我遠程連接到網站的數據庫服務器,select 了評論表,並做了篩選,發現非法評論記錄有幾十萬之多,而且還在不斷增長。而問題的原因顯然是提交評論的接口被攻擊了,但是因爲編碼是考慮欠周,沒有檢測這種特殊情況,提交的非法數據被不斷的寫入至數據庫。

要解決這個問題,必須要修改代碼,判斷提交的內容合法性和提交頻率。這需要重新發布版本,況且我家裏也沒有代碼,想改也改不了,而這個問題又必須要儘快處理,這可如何是好。

凌晨兩點很涼快,我卻急得渾身發熱,背心直冒汗。

“沒辦法了,只能先把已存在的非法評論刪除再說”

我用root賬戶登錄數據庫,設置了一個篩選出這些非法評論的where條件,這個條件很容易指定, 因爲這些評論都長一個樣子,然後執行delete語句,幾秒鐘後,這些非法評論都被刪除。

可是原有的評論雖然被刪除,新的評論還在不斷的寫入, 不一會,評論數量又達到幾千。

“這樣刪除永遠刪不光啊,這可怎麼辦”我急得抓耳撓腮“這要是不能馬上解決, 明天肯定要挨批了,可這個問題根本沒有辦法馬上解決啊,現在連代碼都沒有。難道讓我現在去公司嗎”

忽然,我腦袋裏靈光一閃,想到了一個解決方案。

我可以在評論表上加一個insert觸發器,在觸發器中對評論內容進行檢測,如果插入的內容是非法評論,則回滾這次操作,這樣表中就不會再被寫入非法數據了。

按照這個思路說做就做,我建立完觸發器,刪掉表裏的非法評論,過了一會,再次檢測發現非法評論未再次出現。

“方案生效了”我舒了口氣

然而這只是個臨時解決方案,假如對方改了評論內容的格式,那這個觸發器就會失效。與此同時,觸發器會對數據庫性能造成影響,完善的解決方案還是應該通過程序處理,不過應急處理下問題不大,等捱到天亮就去改程序。

“喂,問題我修復了,你們看下”我撥通了剛纔打給我的客服妹子的電話

“好的,大半夜的處理問題,真是辛苦你了”妹子客套了一下

“沒有,這本來就是我的鍋,是我給你們帶來麻煩了”我說 “對了,你們持續觀測下,如果再有這種情況,立馬打電話給我,我剛纔只是臨時處理下,真正修復問題還要去公司”

“好的,我們知道”客服妹子甜甜的回答

掛掉電環, 我睡意全無,靜靜的等天亮,去公司徹底解決這個漏洞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章