在IT開發圈子裡,常常會有哪種程式語言最好/哪種最差的一些爭論。在這種爭論中,安全性往往是決定大家支援一種語言、不信任另一種語言的一個因素。那麼,到底哪種語言最安全,哪種最不安全呢?
近日,國外一家開源軟體服務公司WhiteSource釋出了一份關於開源軟體安全性的報告。報告中的資料及資訊來源於WhiteSource的綜合資料庫,該資料庫收集的開源漏洞資訊來自於美國國家漏洞資料庫(NVD)、安全警告、GitHub問題跟蹤器以及目前比較流行的開源專案的問題跟蹤器等等。
該資料庫中涵蓋了200多種語言,研究員在分析過程中,重點關注了過去十年內使用最廣泛的7種語言中的開安全漏洞,以找出哪種程式語言最安全,每種語言中,哪種漏洞型別(CWE)最常見,以及原因。
報告給出了四大結論:
· C中的漏洞,佔報告的所有開源安全漏洞的50%。這種情況可以解釋:C的歷史最悠久,擁有最高的編寫程式碼量,而且是我們使用的所有基礎架構的基礎。
· 大多數程式語言中最常見的CWE是跨站點指令碼(XSS);輸入驗證;許可權、特權和訪問控制;以及資訊洩露/披露。
· 自動化工具的使用和有獎捉蟲計劃(Bug Bounty Program)的趨勢已經改變了現狀,導致2017年報告的漏洞顯著增加。
· 雖然在過去兩年中,我們看到報告的安全漏洞數量激增,但在大多數語言中,高嚴重性漏洞的數量已經減少。
根據報告中顯示,這七種每種語言報告的開源安全漏洞佔比分別約為:
1、C (46.9%)
2、PHP (16.7%)
3、Java (11.4%)
4、JavaScript (10.2%)
5、Python (5.45%)
6、c++ (5.23%)
7、Ruby (4.25%)
研究人員在報告中特別指出,我們應該考慮兩個因素來評估這些專案。儘管從研究結果來看,有些人可能錯誤地認為C語言天生就更不安全,但事實並非如此。
對於初學者來說,編寫的C語言程式碼比任何其他語言都多,產生的漏洞提也更多。事實上,C語言的使用時間比大多數其他語言都要長得多,並且是我們使用的大多數產品和平臺的核心。因此,它肯定比其他語言有更多已知的漏洞。
報告中還表示,在過去10年裡,每種程式語言中發現的開源漏洞數量顯著增加,2017年更是大幅增加。這在一定程度上是由於開源的流行,以及對開源元件中的安全漏洞的意識增強,這促使了開發人員去發現並報告更多的問題。山東掌趣網路科技有限公司,專業軟體開發。
那麼對於程式語言的安全問題,您怎麼看呢?