自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用哪種語言寫的應用漏洞最嚴重?六大主流語言代碼漏洞分析報告出爐

安全 應用安全 漏洞
靜態(tài)代碼分析安全公司 Veracode 近日發(fā)布了一份應用程序分析報告,結果發(fā)現(xiàn)比起 JavaScript 和 Python 等語言,C++ 和 PHP 的安全漏洞要嚴重得多。

如果你是一位靠 .NET、C++、Java、JavaScript、PHP 或 Python 吃飯的開發(fā)者,那要注意了:一項新研究揭示了這些編程語言的主要安全漏洞。

靜態(tài)代碼分析安全公司 Veracode 近期發(fā)布了這些語言的漏洞類型數(shù)據(jù),這是該公司掃描了 13 萬應用程序的安全問題后得到的報告。

該公司調(diào)查了用 .NET、C++、Java、JavaScript、PHP 或 Python 編寫的應用程序的漏洞趨勢。這些數(shù)據(jù)整合在 Veracode 的《軟件安全狀態(tài)第 11 卷(State of Software Security Volume 11)》報告中:https://www.veracode.com/sites/default/files/pdf/resources/ipapers/security-flaw-heatmap/index.html。

Veracode 掃描 13 萬個應用程序后得到的漏洞類型數(shù)據(jù)。

對于最常用的前端開發(fā)語言 JavaScript,Veracode 發(fā)現(xiàn) 31.5% 的應用至少有一個跨站腳本(XSS)漏洞,而用 PHP 寫的應用中有 74.6% 至少有一個 XSS 漏洞。此外,71% 的 PHP 應用存在加密問題。

對于用 .NET 寫的應用,最主要的問題是信息泄露——62.8% 的 .NET 應用存在該問題。C++ 應用最大的問題是錯誤處理,占到了 66.5%。

至于 Java 應用,首要問題是 CRLF 注入(回車或換行注入),占受調(diào)查應用的 64.4%。Python 應用中最嚴重的安全問題與加密相關,出現(xiàn)在 35% 的受調(diào)查應用中。

每種語言的漏洞嚴重性也存在很大差別。Veracode 發(fā)現(xiàn)用 C++ 寫的應用中有 59% 存在非常嚴重的漏洞;而對于 PHP,這一數(shù)字為 52%。但是,用 JavaScript 寫的應用僅有 9.6% 有非常嚴重的漏洞,Java 應用的數(shù)據(jù)為 24%。

Veracode 首席研究官 Chris Eng 解釋了不同語言漏洞趨勢不同的原因,以及如何修復它們以避免嚴重損失。

「從整體數(shù)據(jù)上看,我們這個行業(yè)過去十年來沒能消除任何一種漏洞類別?!笶ng 說,「沒有任何問題完全消失。很多事情都在波動,但看看平均情況,你會發(fā)現(xiàn)相比于其它指標,這些數(shù)據(jù)更能反映語言選擇和語言流行程度的變化。我們看到 C++ 常見的緩存溢出問題有下降的趨勢,但這并不是因為開發(fā)者處理這些問題的能力更強了,而是因為使用 C++ 進行開發(fā)的人變少了?!?/p>

另一方面,影響 JavaScript 和 Python 的問題則有所增長,原因是這兩種語言現(xiàn)在非常流行。在企業(yè)層面上,Java 和 .NET 依然備受歡迎。

PHP 依然是網(wǎng)頁應用開發(fā)最常用的腳本語言之一,但 Eng 指出 PHP 漏洞數(shù)量更高的原因是該語言提供了大量不安全的原語以及大量錯誤開發(fā)的方式。

「有些語言會盡力避免開發(fā)者考慮不周而把事情搞砸,.NET 就是其中最早的語言之一?!笶ng 解釋說,「相比于使用 PHP,使用 .NET 時,你會發(fā)現(xiàn)大量 API 都有更安全的默認設置,使得出現(xiàn)跨站腳本錯誤或 SQL 注入錯誤會困難得多。在 PHP 中,這些錯誤幾乎是默認的——除非你剛好在使用一種能為你提供更多保護的更現(xiàn)代框架。使用 PHP 出錯的情況實在太多了?!?/p>

Veracode 在其分析的 JavaScript 應用中發(fā)現(xiàn)的漏洞遠遠更少,但即使 JavaScript 有更安全的默認設置,龐大的 npm 生態(tài)系統(tǒng)中的 JavaScript 和 node.js 開源軟件庫是潛在的薄弱環(huán)節(jié)。

「即使你能修復自己寫的代碼中的所有漏洞,你使用的第三方軟件庫仍會帶來諸多變數(shù)?!笶ng 說,「打補丁實際上并不如你期望的那么好?,F(xiàn)在的趨勢是開發(fā)者在需要時才會去下載這些軟件庫的最新版本,然后他們就再也不更新了,除非這個軟件庫又增加了什么新功能?!?/p>

工程開發(fā)和產(chǎn)品團隊應該如何降低為關鍵應用程序打補丁的麻煩和成本?Eng 的建議是保持更新并且清晰地跟蹤構建應用的技術和安全成本隨時間的變化情況。在某個時間,該應用將需要得到修復或打補丁,其中包括語言更新和關鍵軟件庫的補丁。

Eng 說:「如果我現(xiàn)在在使用 4.5 版,而 4.6 版已經(jīng)出來了,我可以使用該補丁,同時幾乎不會產(chǎn)生功能方面的影響。開源軟件庫不會在小版本更新中對軟件庫進行重大修改。但如果你現(xiàn)在使用的是 2.0 版,那么你就必須得更新到 4.6 版,這個過程會很痛苦」。

對于使用龐大 npm 生態(tài)系統(tǒng)的 JavaScript 來說,更新軟件庫這個問題可能會更嚴重一點,但 Java 和 Python 都有各自的大型生態(tài)系統(tǒng):Maven 和 PyPI。

Eng 表示 JavaScript 應用平均有大約 400 個依賴關系。如果來看第 90 百分位數(shù)的 JavaScript 應用程序,它們的依賴關系數(shù)量可達 1000 或 2000 個。

應用安全公司 Snyk 曾解釋說影響 JavaScript、Ruby、Java、PHP 和 Python 的大多數(shù)安全漏洞都源自項目中加載的主要組件之間的間接依賴關系。

還有一點,某些 JavaScript 軟件庫非常受歡迎,多達 80%-90% 的 JavaScript 應用在使用它們。

Eng 說:「只要這些軟件包中某一個包里有一個漏洞,你就繼承了該風險。而且這不只是安全風險?!?/p>

他指的是 JavaScript 軟件庫 left-pad 曾出現(xiàn)過的情況:2016 年的一場爭吵之后,一個開發(fā)者將該軟件庫移出了 npm。

「它從 GitHub 上消失了,然后突然之間,三分之二的互聯(lián)網(wǎng)崩潰了,因為它們?nèi)家蕾囘@個幾行代碼的軟件庫來確定一個數(shù)是否在左側(cè)填充了零?!?/p>

原文鏈接:

https://www.zdnet.com/article/programming-language-security-these-are-the-worst-bugs-for-each-top-language/

【本文是51CTO專欄機構“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】 

 

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2022-05-27 08:00:00

漏洞AngularReact

2020-02-17 09:42:09

編程語言JavaWindows

2025-01-22 00:13:25

2010-03-11 16:42:31

Python語言開發(fā)

2023-12-04 12:02:05

2023-08-14 12:14:56

2010-04-12 17:31:23

2009-08-27 21:27:20

2019-01-29 10:22:08

Web漏洞攻擊XSS

2024-01-12 10:29:26

2010-04-07 14:33:38

2013-04-11 09:51:43

編程語言

2024-07-10 08:10:10

2017-12-12 23:22:52

2025-03-24 00:25:00

Go語言并發(fā)編程

2023-05-10 15:49:10

NLP語言模型

2022-02-25 20:44:28

框架深度學習架構

2023-10-08 15:54:12

2024-07-16 14:03:56

2024-05-17 16:02:00

點贊
收藏

51CTO技術棧公眾號