1. 程式人生 > 其它 >Java開發的五條安全小貼士,助你的專案更安全

Java開發的五條安全小貼士,助你的專案更安全

 前言

得益於Java的完備生態,Java一直是非常熱門的程式語言。但對於剛剛接觸Java的開發者來說,很少會去關注安全相關的問題,沒有養成良好的開發習慣,在開發過程中容易帶來安全隱患。

我們在本文中總結了五條簡單有效的小建議。

一、及時更新依賴元件版本

在Java開發中,開發者經常會用到各類開源元件來實現自己的功能點,但是許多開發者不常關注安全資訊,不瞭解開源元件的哪個版本存在什麼樣的漏洞,從而可能會引入安全漏洞。

所以在選擇開源元件版本的時候,應優先選擇最新發布的元件,因為最新版本的元件通常都會解決歷史安全問題,因此使用最新版本元件可以將安全風險降到最低。

二、新增安全相關的HTTP請求頭

現代瀏覽器已經支援很多和安全相關的請求頭(header),當新增這些HTTP安全請求頭時,瀏覽器在處理網站內容時會應用相應的安全機制,能夠緩解XSS,程式碼注入,點選劫持等攻擊方式。例如,使用Strict-Transport-Security(嚴格安全傳輸),就可以強制要求瀏覽器僅通過HTTPS進行通訊。

 

三、異常資訊不輸出給使用者

異常物件引起的錯誤返回可能包含敏感資訊,在系統丟擲異常後,異常資訊如果輸出給使用者,可能會被攻擊者利用。例如控制輸入引數來暴露應用程式的內部結構和機制,異常訊息文字和異常型別可能會洩露資訊,以 FileNotFoundException 為例。這些訊息包含有關檔案系統佈局的資訊,異常型別顯示丟失的請求檔案。

為了保護 Java 程式碼應用程式,開發者們應該過濾異常訊息和異常型別,避免直接暴露給使用者。

 

四、避免記錄敏感資訊

開發者們在開發過程中,會接收到來自使用者的許多敏感資訊,例如信用卡和銀行卡號碼、身份證、手機號和密碼等資訊,這些對犯罪分子來說是高度敏感和有價值的,資料盜竊對個人和組織造成巨大傷害。

開發者們應避免將此類資訊明文儲存在日誌檔案中。 如果必須用到身份證等任何敏感資訊,可以考慮僅記錄身份證號的特徵資訊,例如最後四位數字或者hash,並確保使用經過驗證的脫敏工具庫對其進行加密。

五、保持程式碼的簡潔

相對而言,越複雜的程式碼越容易出現問題,所以開發者應該儘量保持程式碼的簡潔。

以下是一些保持程式碼簡潔的實踐:

  • 在不減少功能的情況下使其組織結構儘可能簡單。

  • 在程式碼中避免公開過多的測試使用者資訊,有助於保持安全性和可維護性。

  • 充分利用 Java 的訪問修飾符,儘可能為類、方法及其屬性宣告最嚴格的訪問級別,將可以設定為私有的內容都設定為私有。

  • 定義儘可能小的 API 和介面物件,解耦元件並使它們在儘可能小的範圍內互動,這樣即便應用程式的某一個元件被攻擊,但是其他元件還是安全的。

總結

安全問題絕大多數都是因為開發人員的安全意識薄弱所導致的,開發者們應該在Java開發的時候,提高程式碼安全意識和遵守程式碼安全規範,這會有效提高系統的安全性與流暢性。

參考連結

https://coralogix.com/blog/best-practices-for-writing-secure-java-code/

https://www.synopsys.com/blogs/software-security/spring-security-best-practices/

使用墨菲安全的開源工具幫您快速檢測程式碼安全

開源地址:https://github.com/murphysecurity/murphysec
產品官網:https://murphysec.com

IDE外掛:歡迎在Jetbrains IDE外掛市場搜尋 “murphysec” 安裝檢測外掛,一鍵檢測一鍵修復~

墨菲安全是一家為您提供專業的軟體供應鏈安全管理的科技公司,能力包括程式碼安全檢測、開源元件許可證合規管理、雲原生容器安全檢測、軟體成分分析(SCA)等,豐富的安全工具助您打造完備的軟體開發安全能力(DevSecOps)。產品支援SaaS、私有化部署。公司核心團隊來自百度、華為等企業,擁有超過十年的企業安全建設、安全產品研發及安全攻防經驗。


關於墨菲安全實驗室
墨菲安全實驗室是墨菲未來科技旗下的安全研究團隊,專注於軟體供應鏈安全相關領域的技術研究,關注的方向包括:開源軟體安全、程式分析、威脅情報分析、企業安全治理等。