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

評(píng)論