99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

2020年用Java安全編程的五個原則

汽車玩家 ? 來源:開源中國 ? 作者:白開水不加糖 ? 2020-03-05 14:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一位名為Sam Bocetta的作者發(fā)表了一篇文章,針對在2020年使用Java進行編碼時應(yīng)遵循的五個原則進行了研究。他在文中表示,盡管目前Java的安全性相較于一些舊的語言(特別是C和C ++)而言有所長進,但是使用Java編寫的代碼的漏洞級別還是取決于程序員遵循的最佳實踐。

在當(dāng)今的開發(fā)環(huán)境中更是如此,各種新的安全性技術(shù)、黑客技術(shù)以及新穎的存儲和加密形式,意味著許多人都在質(zhì)疑著Java的安全性。Java開發(fā)人員還面臨著包括云遷移的安全性問題在內(nèi)的諸多挑戰(zhàn)。另一方面,新的安全審核技術(shù)(如混沌工程)也為開發(fā)人員提供了許多提高代碼安全性的機會。

五個原則的具體內(nèi)容如下:

1. Audit your libraries

首先從基于Java的軟件最明顯的漏洞源開始:外部庫。

使用外部庫本身不是問題。在2020年,大多數(shù)開發(fā)人員的大部分時間確實都花在了與第三方庫的合作上。未來隨著客戶需求的發(fā)展,庫的類型也會也來越多。因此,重要的是在每次添加新的庫的時候,開發(fā)人員都要去仔細(xì)檢查其中的已知漏洞,不能掉以輕心。

審計您的庫不僅對安全性有好處。在審核的同時,您可能還會發(fā)現(xiàn)其他對性能產(chǎn)生不利影響的問題。并且,如果您要審核的庫是開源的,則可以借此機會報告錯誤并在整個開源社區(qū)中建立團隊的聲譽。

2. Manage Application Secrets

在管理應(yīng)用程序的secrets時,Java開發(fā)人員也養(yǎng)成了一些壞習(xí)慣?;旧?,社區(qū)可以分為兩個陣營:那些犧牲安全性以便為用戶提供盡可能流暢的軟件體驗的人,以及那些希望用戶花費4個小時為自己的利益輸入憑據(jù)的人。

實際上,2020年的編碼意味著要在安全性和可用性之間取得平衡。對可用性的過多關(guān)注通常會導(dǎo)致代碼不安全,對安全性的過多關(guān)注則意味著用戶將會花費大部分時間來嘗試規(guī)避你采取的安全措施,且他們最終也會成功找到方法。

而在管理應(yīng)用程序的secrets時,Java開發(fā)人員可以從了解CMS平臺之間的差異中學(xué)到很多東西。因為大多數(shù)的CMS平臺都具有龐大的用戶基礎(chǔ),這意味著其開發(fā)人員必須仔細(xì)考慮如何管理應(yīng)用程序的secrets,同時還要保持普通用戶的可用性。

3. Use Mature Encryption Libraries

用于加密的庫應(yīng)該比其他類型的庫進行審計和分析的頻率更高。過去,用于加密的Java庫極難使用,其API對普通開發(fā)人員的幫助不足。這也就導(dǎo)致了許多Java開發(fā)人員開始自己編寫加密庫。

在此過程中,一些人開始錯誤地對自己的加密技術(shù)產(chǎn)生濃重的自豪感,并對他人編寫的代碼產(chǎn)生懷疑。而此舉并不可取,畢竟一些開發(fā)人員一生都在致力于制作不可破解的加密庫,他們編寫的加密庫性能勢必要強于大部分人。

用Java進行加密的最好方法則是使用該語言提供的內(nèi)置工具,重新發(fā)明輪子沒有任何意義(也存在重大弊端)。

4. Validate Your Inputs

如上所述,2020年的編程很大一部分是確保您的用戶不會破壞您精心設(shè)計的軟件。最簡單的方法之一是花費一些時間來驗證用戶輸入。此舉不僅能使您的應(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)該意識到,確保代碼安全是一個過程,而不是一個事件。并且,所有地這些問題都需要通過在程序的整個生命周期中進行仔細(xì)的審核來解決。

聲明:本文內(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)注

    20

    文章

    2989

    瀏覽量

    109516
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1605

    瀏覽量

    63988
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    高速PCB布局/布線的原則

    層三、網(wǎng)格中添加過孔避免熱點四、路由高速信號135°走線彎曲、增加瓶頸區(qū)域外的線距離六、增加菊花鏈路(避免長存根)七、差分布線原則八、正和負(fù)信號間的緊密延遲偏差
    的頭像 發(fā)表于 05-28 19:34 ?1175次閱讀
    高速PCB布局/布線的<b class='flag-5'>原則</b>

    Java 到 Go:面向?qū)ο蟮木奕伺c云原生的輕騎兵

    Go 語言在 2009 被 Google 推出,在創(chuàng)建之初便明確提出了“少即是多(Less is more)”的設(shè)計原則,強調(diào)“以工程效率為核心,極簡規(guī)則解決復(fù)雜問題”。它與 Java
    的頭像 發(fā)表于 04-25 11:13 ?232次閱讀

    大云計算平臺的建設(shè)原則,缺一不可!

    云計算平臺建設(shè)需遵循五大原則:可擴展性、高可用性、安全性、靈活性、合理的成本效益,以實現(xiàn)高效、可靠、安全、靈活且經(jīng)濟的云服務(wù)。UU云小編認(rèn)為云計算平臺的建設(shè)原則具體涵蓋以下幾個方面:
    的頭像 發(fā)表于 01-20 10:18 ?475次閱讀

    Java微服務(wù)中如何確保安全性?

    Java微服務(wù)架構(gòu)中確保安全性,可以采取以下措施: 身份驗證與授權(quán): 使用OAuth 2.0和OpenID Connect框架進行身份驗證和授權(quán)。OAuth2允許用戶在不分享憑證的情況下授權(quán)第三方
    的頭像 發(fā)表于 01-02 15:21 ?659次閱讀

    上汽大通eTerron 9斬獲歐洲Euro NCAP安全認(rèn)證

    全球高品質(zhì)鍛造“星大通”!近日,2024最新一期Euro NCAP(歐洲新車安全評鑒協(xié)會,以下簡稱Euro NCAP)安全碰撞測試結(jié)果
    的頭像 發(fā)表于 12-06 16:04 ?611次閱讀

    Java 23功能介紹

    Java 23 包含全新和更新的 Java 語言功能、核心 API 以及 JVM,同時適合新的 Java 開發(fā)者和高級開發(fā)者。從?IntelliJ IDEA 2024.2?開始已支持 Java
    的頭像 發(fā)表于 12-04 10:02 ?992次閱讀
    <b class='flag-5'>Java</b> 23功能介紹

    詳解SMT工藝的原則

    SMT(表面貼裝技術(shù))工藝中的原則,是工程師在選擇焊膏時的一重要指導(dǎo)原則,它確保了焊接的可靠性和質(zhì)量。以下是對
    的頭像 發(fā)表于 12-04 09:11 ?662次閱讀
    詳解SMT工藝的<b class='flag-5'>五</b>球<b class='flag-5'>原則</b>

    深入了解Java泛型——從前世今生到PECS原則

    元素?”的問題,也會出現(xiàn)感嘆Java的泛型限制太多了很難用的情況。 為了更好的使用泛型,就需要更深地了解它,因此本文主要介紹泛型誕生的前世今生,特性,以及著名PECS原則的由來。 泛型的誕生 背景 在沒有泛型之前,必須使用Object編寫適用于多種類
    的頭像 發(fā)表于 11-21 11:45 ?532次閱讀
    深入了解<b class='flag-5'>Java</b>泛型——從前世今生到PECS<b class='flag-5'>原則</b>

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學(xué)者。 動態(tài)類型系統(tǒng)
    的頭像 發(fā)表于 11-15 09:31 ?1061次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨特的優(yōu)勢和特點,適用于不同的應(yīng)用場景。以下將從語法特性、內(nèi)存管理、跨平臺性、性能、應(yīng)用領(lǐng)域等多個方面對C語言和Java語言進行詳細(xì)對比。
    的頭像 發(fā)表于 10-29 17:31 ?1063次閱讀

    安全型繼電器要符合什么原則

    安全型繼電器在設(shè)計和使用過程中,必須符合的核心原則是 故障-安全原則 。這一原則的具體含義和要求可以歸納如下: 故障-
    的頭像 發(fā)表于 09-21 10:12 ?1181次閱讀

    甲骨文發(fā)布Java 23

    全球領(lǐng)先的軟件開發(fā)企業(yè)甲骨文(Oracle)近日隆重宣布推出Java 23(Oracle JDK 23),這一里程碑式的更新標(biāo)志著全球排名第一的編程語言和開發(fā)平臺再次邁出堅實步伐。Java 23不僅承載著無數(shù)開發(fā)者的期待,更以數(shù)
    的頭像 發(fā)表于 09-19 16:36 ?658次閱讀

    java子類可以繼承父類的什么

    Java是一種面向?qū)ο蟮?b class='flag-5'>編程語言,它支持繼承的概念。繼承是面向?qū)ο?b class='flag-5'>編程的三大特性之一,它允許一類(稱為子類或派生類)繼承另一類(稱為父類
    的頭像 發(fā)表于 08-20 11:02 ?2342次閱讀

    三十分鐘入門基礎(chǔ)Go Java小子版

    Java功能上的對比來闡述Go語言 的基礎(chǔ)語法、面向?qū)ο?b class='flag-5'>編程、并發(fā)與錯誤四方面。 一、基礎(chǔ)語法 Go語言的基礎(chǔ)語法與常規(guī)的編程語言基本類似,所
    的頭像 發(fā)表于 08-12 14:32 ?980次閱讀
    三十分鐘入門基礎(chǔ)Go <b class='flag-5'>Java</b>小子版

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    Java Web和Java是兩不同的概念,它們在功能、用途和實現(xiàn)方式上存在一些區(qū)別,下面將詳細(xì)介紹它們之間的區(qū)別。 1. 功能和用途: – Java是一種
    的頭像 發(fā)表于 07-16 13:35 ?1445次閱讀
    華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別