Java開發的五條安全小貼士,助你的專案更安全
前言
得益於Java的完備生態,Java一直是非常熱門的程式語言。但對於剛剛接觸Java的開發者來說,很少會去關注安全相關的問題,沒有養成良好的開發習慣,在開發過程中容易帶來安全隱患。
我們在本文中總結了五條簡單有效的小建議。
一、及時更新依賴元件版本
在Java開發中,開發者經常會用到各類開源元件來實現自己的功能點,但是許多開發者不常關注安全資訊,不瞭解開源元件的哪個版本存在什麼樣的漏洞,從而可能會引入安全漏洞。
所以在選擇開源元件版本的時候,應優先選擇最新發布的元件,因為最新版本的元件通常都會解決歷史安全問題,因此使用最新版本元件可以將安全風險降到最低。
二、新增安全相關的HTTP請求頭
現代瀏覽器已經支援很多和安全相關的請求頭(header),當新增這些HTTP安全請求頭時,瀏覽器在處理網站內容時會應用相應的安全機制,能夠緩解XSS,程式碼注入,點選劫持等攻擊方式。例如,使用Strict-Transport-Security
(嚴格安全傳輸),就可以強制要求瀏覽器僅通過HTTPS進行通訊。
三、異常資訊不輸出給使用者
異常物件引起的錯誤返回可能包含敏感資訊,在系統丟擲異常後,異常資訊如果輸出給使用者,可能會被攻擊者利用。例如控制輸入引數來暴露應用程式的內部結構和機制,異常訊息文字和異常型別可能會洩露資訊,以 FileNotFoundException 為例。這些訊息包含有關檔案系統佈局的資訊,異常型別顯示丟失的請求檔案。
為了保護 Java 程式碼應用程式,開發者們應該過濾異常訊息和異常型別,避免直接暴露給使用者。
四、避免記錄敏感資訊
開發者們在開發過程中,會接收到來自使用者的許多敏感資訊,例如信用卡和銀行卡號碼、身份證、手機號和密碼等資訊,這些對犯罪分子來說是高度敏感和有價值的,資料盜竊對個人和組織造成巨大傷害。
開發者們應避免將此類資訊明文儲存在日誌檔案中。 如果必須用到身份證等任何敏感資訊,可以考慮僅記錄身份證號的特徵資訊,例如最後四位數字或者hash,並確保使用經過驗證的脫敏工具庫對其進行加密。
五、保持程式碼的簡潔
相對而言,越複雜的程式碼越容易出現問題,所以開發者應該儘量保持程式碼的簡潔。
以下是一些保持程式碼簡潔的實踐:
-
在不減少功能的情況下使其組織結構儘可能簡單。
-
在程式碼中避免公開過多的測試使用者資訊,有助於保持安全性和可維護性。
-
充分利用 Java 的訪問修飾符,儘可能為類、方法及其屬性宣告最嚴格的訪問級別,將可以設定為私有的內容都設定為私有。
-
定義儘可能小的 API 和介面物件,解耦元件並使它們在儘可能小的範圍內互動,這樣即便應用程式的某一個元件被攻擊,但是其他元件還是安全的。
總結
安全問題絕大多數都是因為開發人員的安全意識薄弱所導致的,開發者們應該在Java開發的時候,提高程式碼安全意識和遵守程式碼安全規範,這會有效提高系統的安全性與流暢性。
參考連結
使用墨菲安全的開源工具幫您快速檢測程式碼安全
開源地址:
IDE外掛:歡迎在Jetbrains IDE外掛市場搜尋 “murphysec” 安裝檢測外掛,一鍵檢測一鍵修復~
墨菲安全是一家為您提供專業的軟體供應鏈安全管理的科技公司,能力包括程式碼安全檢測、開源元件許可證合規管理、雲原生容器安全檢測、軟體成分分析(SCA)等,豐富的安全工具助您打造完備的軟體開發安全能力(DevSecOps)。產品支援SaaS、私有化部署。公司核心團隊來自百度、華為等企業,擁有超過十年的企業安全建設、安全產品研發及安全攻防經驗。
關於墨菲安全實驗室
墨菲安全實驗室是墨菲未來科技旗下的安全研究團隊,專注於軟體供應鏈安全相關領域的技術研究,關注的方向包括:開源軟體安全、程式分析、威脅情報分析、企業安全治理等。