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