您好,登錄后才能下訂單哦!
安全性是軟件開發中最復雜,最廣泛和最重要的考量之一。Java是具有許多內置安全性功能的開發平臺,java在長期的發展過程中,已經經過了很多高強度的安全測試,并經常更新安全漏洞。并且Java生態系統還包括用于分析和報告安全性問題的各種工具。
但是,即使有了可靠的開發平臺,也同樣要保持警惕。應用程序開發是一項復雜的工作,漏洞會隱藏起來不易發現。程序員應該在應用程序開發的每個階段都考慮安全性,從類級別的代碼編程到API端點授權都應該被考慮在內。
以下為大家介紹的基本規則,可以為構建更安全的Java應用程序奠定良好的基礎。供參考學習!
Java安全規則1:編寫簡單而強大的Java代碼
漏洞喜歡隱藏在復雜代碼中,因此在不犧牲功能的情況下使代碼盡可能簡單。在代碼中公開盡可能少的信息,隱藏實施細節,支持可維護和安全的代碼。下面三個技巧將大大有助于編寫安全的Java代碼:
Java安全規則2:避免使用Java自帶的序列化
序列化接受遠程輸入,并將其轉換為完全賦值的對象。它省去了構造函數和訪問修飾符,并允許未知數據流成為JVM中的運行代碼。Java序列化從根本上來說是不安全的。
Oracle就有長期計劃 從Java中刪除自帶的序列化功能,甲骨文公司Java平臺小組的首席架構師Mark Reinhold說,Java漏洞中的三分之一或更多都涉及到序列化的問題。
盡可能避免在Java代碼中使用自帶的序列化/反序列化。可以考慮使用JSON或YAML之類的序列化格式,并且永遠不要公開接收并作用于序列化流的不受保護的網絡請求端點。
Java安全規則3:永遠不要公開未加密的憑證或PII
很多的應用,當用戶在瀏覽器中輸入密碼時,密碼將以純文本格式發送到您的服務器。正確的做法是:先通過單向密碼對密碼進行加密,然后再將其持久保存到數據庫中,然后在每次與該值進行比較時再次進行加密保存。密碼規則適用于所有個人身份信息(PII):信用卡,社會保險號等。委托給您應用程序的任何個人信息都應得到最高程度的保護。數據庫中未加密的憑據或PII是一個巨大的安全漏洞,正在等待攻擊者發現。同樣,切勿將原始憑據寫入日志,或以其他方式傳輸到文件或網絡。密碼與密鑰分開保存。
Java安全規則4:使用已知和經過測試的庫
盡可能使用已知的可靠庫和框架。從密碼哈希到REST API授權,都要謹慎的選擇第三方庫。對于web應用程序安全性,Spring Security已經是事實上的標準。它提供了廣泛的選擇和靈活性,以適應任何應用程序體系結構,并且融合了多種安全方法。
Java安全規則5:不要對外部輸入抱有幻想
無論是來自用戶輸入表單,數據存儲區還是遠程API,對于任何外部輸入都不要放松警惕。
SQL注入和跨站點腳本(XSS)是由于處理外部輸入錯誤而引起的最常見攻擊。每當您收到輸入時,都應該對其進行檢查和校驗。
Java安全規則6:始終使用PreparedStatement來處理SQL參數
每當您構建一條SQL語句時,都有可能被插入一段可執行的SQL代碼。始終使用java.sql.PreparedStatement類創建SQL是一個好習慣。對于NoSQL存儲(如MongoDB)也存在類似的功能。絕大部分的ORM框架,都支持該功能。
Java安全規則7:不要向用戶展示服務異常信息
生產中的服務異常信息可以為攻擊者提供豐富的信息來源。堆棧跟蹤尤其可以揭示有關您正在使用的技術及其使用方式的信息。避免向最終用戶顯示堆棧跟蹤信息,這非常重要。
Java安全規則8:使安全性發布保持最新
通過定期檢查Oracle主頁以獲取security-alerts確保知道可用的重要補丁程序 。每個季度,Oracle都會為Java的當前LTS(長期支持)版本提供一個自動補丁更新。問題是,只有在您購買Java支持許可證的情況下,該補丁才可用。
Java安全規則9:查找依賴庫漏洞
有許多工具可以自動掃描您的代碼庫和依賴項是否存在漏洞。OWASP(開放式Web應用程序安全性項目)是致力于改善代碼安全性的組織。OWASP的值得信賴的高質量自動代碼掃描工具列表 ,包括多個面向Java的安全檢查工具。
Java安全規則10:監視和記錄用戶活動
如果您沒有積極地監視應用程序運行狀態,那么即使是簡單的暴力攻擊也可能會成功攻陷你的app。使用監視和日志記錄工具來監視應用程序的運行狀況。監視可以提醒您注意到無法被解釋的峰值,而日志記錄可以幫助您了解攻擊后出了什么問題。
Java安全規則11:當心DoS攻擊
每當要執行消耗資源的的操作(例如將壓縮文件解壓縮)時,都應該監視資源使用量的增長。對其進行監視,并防止服務器資源過度使用,以及更多的自動化的應急響應方案。
Java安全規則12:考慮使用Java安全管理器
Java有一個安全管理器,可用于限制正在運行的進程可以訪問的資源。它可以根據磁盤,內存,網絡和JVM訪問來隔離程序。縮小對應用程序的這些資源的過度占用,可以減少攻擊可能造成的危害。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。