編程語言之爭,一直以來是開發者社區的熱議問題,因為開發者喜歡證明自己所使用的編程語言占據主導地位,尤其是安全性,只不過討論的過程往往都伴隨著雙方的憤怒,最后不了了之。那么,你可知在眾多熱門編程語言中,哪個安全性更高?
為此,開源安全公司 WhiteSource 針對七種熱門編程語言的安全性做了一份報告,匯總了多個來源的開源漏洞信息,其中包括國家漏洞數據庫(NVD)、安全公告、GitHub問題追蹤器(Issue Tracker)和流行開源項目問題追蹤器。
WhiteSource 根據開源社區過去幾年間使用的流行語言,確認出C,Java,JavaScript,Python,Ruby,PHP 和 C ++這七種比較熱門的編程語言,并在這些語言的基礎上,搜索數據庫查看了過去十年中每種語言中已知開源安全漏洞的數量、隨時間推移這些安全漏洞發生的變化、以及各語言最常見的 CWE(通用缺陷列表)。
正如上圖所示,很明顯居首位的是C語言,占到了近一半的比例。不過,這并不能說明C語言的安全性遠低于其他熱門語言,如此高的占比主要有以下幾個原因可以解釋:一是,C語言的使用時間在調查語言中是最長的;二是,C語言一般編寫的代碼量很大;三是,Open SSL和Linux內核等基礎架構背后的主要語言之一就是C語言。這些存在時間、體積和中心性等因素的組合,可以解釋C語言為什么存在這么多大量已知開源安全漏洞。
此外,報告還顯示了隨時間的推移不同編程語言的開源安全漏洞數量變化。過去十年間,這些編程語言有著各自的高點和低點。但所有語言都有一個明顯的趨勢,即近兩年所有語言的已知安全漏洞數量都在大幅增加,這可以看作是安全漏洞意識的提高及開源的更加普及。隨著開源安全研究投入資源的增加,人們發現的安全問題數量也會變多。
那么,這些漏洞究竟嚴重到何種程度呢?調查人員研究發現高嚴重性的開源安全漏洞(CVSS v2得分高于7)時,發現除了JavaScript和PHP,報告中涉及的大多數語言嚴重漏洞的占比處于下降趨勢。此外,調查人員還研究了每種語言常見的CWE。
其中,跨站腳本攻擊(XSS,也稱之為CWE-79)和輸入驗證(也稱為CWE-20)占據了最常見的位置;另外比較突出的CWE有信息泄漏(CWE-200)、路徑遍歷(CWE-22)、權限及訪問控制(CWE-264)、不正當訪問控制(CWE-284)等。
其實,像“我的編程語言比你更安全”類似的話,現在看來更像是程序員間的打趣。如今,大多數軟件開發都依賴多種編程語言來實現,而不是執著于某一編程語言。掌握已知的開源漏洞、了解團隊正在使用的編程語言中的優點和缺點,這些都是確保軟件項目從一開始就具有安全性的好方法。
想要在程序員生涯內有更高的成就的話,C/C++就是一個既可以強化思維能力,又可以打好編程基礎的編程語言,你想要做軟件開發,成為核心程序員的話,學習C/C++的話筆者有一個C/C++的編程倆千人羣(Q艘索:C/C++編程學習13)群,你如果感覺自學C/C++語言有困難的話,有興趣學習或者了解一下C/C++編程的小伙伴就可以進來交流。
-
JAVA
+關注
關注
19文章
2958瀏覽量
104544 -
編程語言
+關注
關注
10文章
1938瀏覽量
34594 -
PHP
+關注
關注
0文章
452瀏覽量
26649
發布評論請先 登錄
相關推薦
評論