一位名為Sam Bocetta的作者發(fā)表了一篇文章,針對在2020年使用Java進(jìn)行編碼時應(yīng)遵循的五個原則進(jìn)行了研究。他在文中表示,盡管目前Java的安全性相較于一些舊的語言(特別是C和C ++)而言有所長進(jìn),但是使用Java編寫的代碼的漏洞級別還是取決于程序員遵循的最佳實(shí)踐。
在當(dāng)今的開發(fā)環(huán)境中更是如此,各種新的安全性技術(shù)、黑客技術(shù)以及新穎的存儲和加密形式,意味著許多人都在質(zhì)疑著Java的安全性。Java開發(fā)人員還面臨著包括云遷移的安全性問題在內(nèi)的諸多挑戰(zhàn)。另一方面,新的安全審核技術(shù)(如混沌工程)也為開發(fā)人員提供了許多提高代碼安全性的機(jī)會。
五個原則的具體內(nèi)容如下:
1. Audit your libraries
首先從基于Java的軟件最明顯的漏洞源開始:外部庫。
使用外部庫本身不是問題。在2020年,大多數(shù)開發(fā)人員的大部分時間確實(shí)都花在了與第三方庫的合作上。未來隨著客戶需求的發(fā)展,庫的類型也會也來越多。因此,重要的是在每次添加新的庫的時候,開發(fā)人員都要去仔細(xì)檢查其中的已知漏洞,不能掉以輕心。
審計您的庫不僅對安全性有好處。在審核的同時,您可能還會發(fā)現(xiàn)其他對性能產(chǎn)生不利影響的問題。并且,如果您要審核的庫是開源的,則可以借此機(jī)會報告錯誤并在整個開源社區(qū)中建立團(tuán)隊(duì)的聲譽(yù)。
2. Manage Application Secrets
在管理應(yīng)用程序的secrets時,Java開發(fā)人員也養(yǎng)成了一些壞習(xí)慣。基本上,社區(qū)可以分為兩個陣營:那些犧牲安全性以便為用戶提供盡可能流暢的軟件體驗(yàn)的人,以及那些希望用戶花費(fèi)4個小時為自己的利益輸入憑據(jù)的人。
實(shí)際上,2020年的編碼意味著要在安全性和可用性之間取得平衡。對可用性的過多關(guān)注通常會導(dǎo)致代碼不安全,對安全性的過多關(guān)注則意味著用戶將會花費(fèi)大部分時間來嘗試規(guī)避你采取的安全措施,且他們最終也會成功找到方法。
而在管理應(yīng)用程序的secrets時,Java開發(fā)人員可以從了解CMS平臺之間的差異中學(xué)到很多東西。因?yàn)榇蠖鄶?shù)的CMS平臺都具有龐大的用戶基礎(chǔ),這意味著其開發(fā)人員必須仔細(xì)考慮如何管理應(yīng)用程序的secrets,同時還要保持普通用戶的可用性。
3. Use Mature Encryption Libraries
用于加密的庫應(yīng)該比其他類型的庫進(jìn)行審計和分析的頻率更高。過去,用于加密的Java庫極難使用,其API對普通開發(fā)人員的幫助不足。這也就導(dǎo)致了許多Java開發(fā)人員開始自己編寫加密庫。
在此過程中,一些人開始錯誤地對自己的加密技術(shù)產(chǎn)生濃重的自豪感,并對他人編寫的代碼產(chǎn)生懷疑。而此舉并不可取,畢竟一些開發(fā)人員一生都在致力于制作不可破解的加密庫,他們編寫的加密庫性能勢必要強(qiáng)于大部分人。
用Java進(jìn)行加密的最好方法則是使用該語言提供的內(nèi)置工具,重新發(fā)明輪子沒有任何意義(也存在重大弊端)。
4. Validate Your Inputs
如上所述,2020年的編程很大一部分是確保您的用戶不會破壞您精心設(shè)計的軟件。最簡單的方法之一是花費(fèi)一些時間來驗(yàn)證用戶輸入。此舉不僅能使您的應(yīng)用程序更安全,也會使得它們更易于使用。
5. Don’t Reinvent the Wheel
最后,一種萬能的原則適用于所有語言的所有開發(fā)人員:不要自己制作易于使用的版本。
自己制作庫的問題在于,晦澀的代碼本質(zhì)上并沒有比公開可用的代碼更安全。主要原因是開源庫在被眾人使用的同時,也在被成千上萬人檢查。因此,其中所存在的漏洞也會很快被發(fā)現(xiàn)。
總結(jié)
100%的安全是不可能的。確保Java開發(fā)中的安全性的關(guān)鍵是,擁有一個用于檢查安全漏洞并將其關(guān)閉的系統(tǒng)。最重要的是,Java開發(fā)人員應(yīng)該意識到,確保代碼安全是一個過程,而不是一個事件。并且,所有地這些問題都需要通過在程序的整個生命周期中進(jìn)行仔細(xì)的審核來解決。
-
JAVA
+關(guān)注
關(guān)注
19文章
2946瀏覽量
104370 -
API
+關(guān)注
關(guān)注
2文章
1465瀏覽量
61680
發(fā)布評論請先 登錄
相關(guān)推薦
評論