安全無小事

昨天被一家電子商務網站刷屏了,原因是這家網站可以無限制領用一張100元的代金券,並且可以用於購買充值卡等虛擬商品。消息一經傳開,大量網友蜂擁而至,等到網站發現流量異常後,發現並且關閉這個漏洞,已經造成了數千萬的損失。

這本來是一個營銷活動,按照常規的理解,這樣的代金券一個人只能領用一次,但是不知道什麼原因,系統沒有控制好,被反覆領用了。這很明顯是一個程序上的bug,被人發現並利用,造成了企業的損失。

作爲一個程序員,對程序要有敬畏之心,任何程序上的一行代碼錯誤,都有可能導致巨大的損失。

1996年6月4號—美國501航天飛機爆炸事件。

對於Ariane 4火箭的工作代碼在Ariane 5中被重新使用,但是Ariane 5更高速的運算引擎在火箭航天計算機中的算法程序中觸發了一個bug。該錯誤存在於將64位浮點數轉換爲16位帶符號整數的程序中。更快的運算引擎導致了Ariane 5中的64位數據要比Ariane 4中更長,直接誘發了溢出條件,最終導致了航天計算機的崩潰。

首先501航天飛機的備份計算機崩潰,然後0.05秒之後,主計算機也崩潰了。這些計算機崩潰直接導致了火箭的主要處理器使火箭的運算引擎過載,同時導致火箭在發射40秒後解體破碎。

如果程序員都能從這些安全事件中吸取教訓,那麼很多損失就可以避免了。

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