編程語言之爭,一直以來是開發(fā)者社區(qū)的熱議問題,因?yàn)殚_發(fā)者喜歡證明自己所使用的編程語言占據(jù)主導(dǎo)地位,尤其是安全性,只不過討論的過程往往都伴隨著雙方的憤怒,最后不了了之。那么,你可知在眾多熱門編程語言中,哪個安全性更高?
為此,開源安全公司 WhiteSource 針對七種熱門編程語言的安全性做了一份報告,匯總了多個來源的開源漏洞信息,其中包括國家漏洞數(shù)據(jù)庫(NVD)、安全公告、GitHub問題追蹤器(Issue Tracker)和流行開源項(xiàng)目問題追蹤器。
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ù)量變化。過去十年間,這些編程語言有著各自的高點(diǎn)和低點(diǎn)。但所有語言都有一個明顯的趨勢,即近兩年所有語言的已知安全漏洞數(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)和輸入驗(yàn)證(也稱為CWE-20)占據(jù)了最常見的位置;另外比較突出的CWE有信息泄漏(CWE-200)、路徑遍歷(CWE-22)、權(quán)限及訪問控制(CWE-264)、不正當(dāng)訪問控制(CWE-284)等。
其實(shí),像“我的編程語言比你更安全”類似的話,現(xiàn)在看來更像是程序員間的打趣。如今,大多數(shù)軟件開發(fā)都依賴多種編程語言來實(shí)現(xiàn),而不是執(zhí)著于某一編程語言。掌握已知的開源漏洞、了解團(tuán)隊(duì)正在使用的編程語言中的優(yōu)點(diǎn)和缺點(diǎn),這些都是確保軟件項(xiàng)目從一開始就具有安全性的好方法。
想要在程序員生涯內(nèi)有更高的成就的話,C/C++就是一個既可以強(qiáng)化思維能力,又可以打好編程基礎(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文章
2977瀏覽量
105229 -
編程語言
+關(guān)注
關(guān)注
10文章
1951瀏覽量
35023 -
PHP
+關(guān)注
關(guān)注
0文章
454瀏覽量
26812
發(fā)布評論請先 登錄
相關(guān)推薦
如何實(shí)現(xiàn) HTTP 協(xié)議的安全性
電池的安全性測試項(xiàng)目有哪些?
![電池的<b class='flag-5'>安全性</b>測試項(xiàng)目有哪些?](https://file1.elecfans.com/web3/M00/01/44/wKgZPGdSWXaAKUfjAABjfIXWbA4979.png)
評論