0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

熱門編程語言中哪個的安全性更高

Wildesbeast ? 來源:今日頭條 ? 作者:C語言編程學(xué)習(xí) ? 2020-02-06 12:37 ? 次閱讀

編程語言之爭,一直以來是開發(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)來交流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104484
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1929

    瀏覽量

    34540
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    452

    瀏覽量

    26630
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實現(xiàn)不同計算機之間的
    的頭像 發(fā)表于 11-01 16:51 ?203次閱讀

    socket編程安全性考慮

    在Socket編程中,安全性是一個至關(guān)重要的考慮因素。以下是一些關(guān)鍵的安全性考慮和措施: 1. 數(shù)據(jù)加密 使用TLS/SSL協(xié)議 :TLS/SSL(傳輸層安全性/
    的頭像 發(fā)表于 11-01 16:46 ?156次閱讀

    智能系統(tǒng)的安全性分析

    智能系統(tǒng)的安全性分析是一個至關(guān)重要的過程,它涉及多個層面和維度,以確保系統(tǒng)在各種情況下都能保持安全、穩(wěn)定和可靠。以下是對智能系統(tǒng)安全性的分析: 一、數(shù)據(jù)安全性 數(shù)據(jù)加密 : 采用對稱加
    的頭像 發(fā)表于 10-29 09:56 ?173次閱讀

    固態(tài)電池安全性怎么樣

    固態(tài)電池在安全性方面表現(xiàn)出顯著的優(yōu)勢,這主要得益于其獨特的固態(tài)電解質(zhì)結(jié)構(gòu)。以下是對固態(tài)電池安全性的詳細(xì)分析:
    的頭像 發(fā)表于 09-15 11:47 ?427次閱讀

    請問DM平臺訪問安全性如何控制?

    DM平臺訪問安全性如何控制?
    發(fā)表于 07-25 06:10

    藍(lán)牙模塊的安全性與隱私保護(hù)

    藍(lán)牙模塊作為現(xiàn)代無線通信的重要組成部分,在智能家居、可穿戴設(shè)備、健康監(jiān)測等多個領(lǐng)域得到了廣泛應(yīng)用。然而,隨著藍(lán)牙技術(shù)的普及,其安全性和隱私保護(hù)問題也日益凸顯。本文將探討藍(lán)牙模塊在數(shù)
    的頭像 發(fā)表于 06-14 16:06 ?473次閱讀

    介紹C語言中錯誤處理和異常處理的一些常用的方法和策略

    C語言是一種低級的、靜態(tài)的、結(jié)構(gòu)化的編程語言,它沒有提供像C++或Java等高級語言中的異常處理機制,例如try-catch-finally等。
    的頭像 發(fā)表于 02-28 14:25 ?579次閱讀

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析? 在C語言中,訪問權(quán)限沖突異常通常是由于嘗試訪問未授權(quán)的變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)而引起的。這種異常是編程中常見的錯誤之一
    的頭像 發(fā)表于 01-12 16:03 ?4722次閱讀

    c語言中邏輯真等價于什么

    在C語言中,邏輯真等價于1。邏輯真可以理解為一個表達(dá)式、語句或條件的結(jié)果為真,即滿足條件。在計算機科學(xué)和編程中,邏輯真在控制流語句、循環(huán)和條件語句中具有重要的作用。 邏輯真等價于條件為真的情況。在C
    的頭像 發(fā)表于 11-30 14:10 ?1938次閱讀

    c語言中decimal的含義

    特殊的數(shù)據(jù)類型,用于處理需要更高精度的十進(jìn)制數(shù)。 在C語言中,普通的整數(shù)類型(如int)只能表示整數(shù),并且有一定的范圍限制,而decimal類型可以表示更大范圍的數(shù)值,并且可以保持高精度。這使得decimal類型在一些需要精確計算的場景中非常有用,比如在金融領(lǐng)域的計算中。
    的頭像 發(fā)表于 11-30 10:57 ?2227次閱讀

    \0在c語言中怎么用

    是由貝爾實驗室的Dennis Ritchie為了開發(fā)UNIX操作系統(tǒng)而設(shè)計的。它在20世紀(jì)70年代初首次出現(xiàn),并迅速流行起來。C語言以其簡潔、高效、低級別的特性成為了廣泛使用的編程語言。 二、基本語法 注釋 在C
    的頭像 發(fā)表于 11-24 09:59 ?2968次閱讀

    scanf在C語言中的作用

    scanf在C語言中的作用? scanf是C語言中的輸入函數(shù),用于從標(biāo)準(zhǔn)輸入設(shè)備(如鍵盤)讀取數(shù)據(jù),并將其存儲到變量中。它是C語言中最常用的標(biāo)準(zhǔn)庫函數(shù)之一,對于控制臺交互式程序開發(fā)
    的頭像 發(fā)表于 11-23 14:13 ?1248次閱讀

    Python編程語言屬于什么語言

    Python編程語言屬于高級編程語言中的一種。它是一種通用、面向?qū)ο?、解釋?b class='flag-5'>編程語言。Pytho
    的頭像 發(fā)表于 11-22 14:31 ?1335次閱讀

    c語言中順序結(jié)構(gòu)的基本流程

    C語言是一種通用的編程語言,注重結(jié)構(gòu)化編程和順序結(jié)構(gòu)。順序結(jié)構(gòu)是C語言編程中最簡單也是最基本的控
    的頭像 發(fā)表于 11-22 10:20 ?913次閱讀

    C語言中如何實現(xiàn)注釋

    在C語言中,注釋是用來增加代碼可讀和注釋過程和功能的文本。C語言中支持兩種類型的注釋:單行注釋和多行注釋。 單行注釋以雙斜杠(//)開始,直到該行結(jié)束。該注釋語句可以在代碼的任何位置插入,用于解釋
    的頭像 發(fā)表于 11-22 10:17 ?1198次閱讀