韓璐瑩
(陜西國際商貿學院 陜西 咸陽 712000)
在移動互聯網飛速發展的時代背景下,Java Web的應用也迎來了前所未有的發展機遇,并獲得了更大范圍的應用和推廣,在加快信息化社會建設及推動信息軟件的發展中發揮了重要作用。然而,Java Web程序所具備的主要功能就是完成網絡信息資源的交換和共享,使用戶能夠利用這些程序瀏覽相應的數據和信息,這樣一來Java Web程序的安全性就很難得到有效保障。因此,需要對Java Web程序采取相應的安全技術,以此來有效解決應用程序在運行過程中所出現的安全問題。
Java Web應用是基于Web技術及使用Java語言進行開發的程序應用,其結構主要分為客戶端和服務器端。因此,其所面對的安全威脅通常也來源于這兩部分,特別是在具體應用程序的實際運行中,即數據交換和資源共享的通信過程。在服務器端所遭遇的安全威脅大多數是服務器在實際運行時所出現的bug,其他常見的安全威脅還有由于服務器代碼的運行環境被破壞或者是代碼本身被隱藏等,可表現為資源定位器發生強制訪問的問題,以及服務器和操作系統的漏洞??蛻舳怂鎸Φ陌踩{則具體表現在技術人員所使用的開發技術有安全隱患和漏洞。在Java Web程序中引入安全技術可以防止以上問題的出現,以確保在數據等資源交換的過程中數據不會遭到篡改和破壞,使其完整性、準確性及保密性得到保障[1]。
Java的安全體系架構理念是以安全沙箱的概念為基礎延伸而來,對模型劃分為需要加載的遠程代碼及存儲于本地服務器的本地代碼。存儲在本地服務器的代碼是可信任、安全的,并且能夠有效訪問本地服務器上的資源。在具體的Java程序設計過程中,該理念能夠對Java 安全體系進行補充,使其能夠在保護域的基礎概念上,提供更為可靠的安全控制。所謂的保護域即對應用安全和系統安全進行了區分,其中最為核心且重要的就是保護域的概念,能夠指出當前操作環境中所需要進行保護的重要部分,以此達到分組需保護資源和組件的目的。在對應的保護域中,應當對擁有相同權限的不同類進行歸類,以定義保護域。在加載Java類的有關安全機制中,應當將其基本類的有關記載引入,從而有效解決加載器間的聯系問題,這個過程中Java程序需要使用的所有初始類都是需要加載的,并且其他類型的加載器也是需要通過起動方可進行加載。而關于Java的權限方面,會借助固定的類Permission來進行具體表示。Java也會提供一部分常用的子類以表示不同應用系統的具體權限,此外還會賦予其子類與其等級相適應的權限,借助這樣的方式來實現Java的具體安全策略[2]。
在與Java相關的安全策略中,非常重視不同Java程序創建對應的安全策略文件,從而達到保護域內容進行不斷地改進和提升的目的,但是不會改動對應用程序的具體代碼。但需要在對應的安全策略文件中,去定義應用程序所涉及的具體策略條目,并且按照文件中的對應條目得到所需的安全策略文件。
在與安全屬性相關的文件中,需要配置3種安全策略類型的文件,其中包括系統安全策略、用戶策略以及應用安全策略,通過設定其系統屬性,可以替代原有的安全策略文件。與此同時,還存在一種情形,就是任何使用程序的人都有權去修改Java現行的安全策略文件,這樣就容易導致出現大量的安全問題,當這種情況發生時,應當借助Java命令設置系統屬性。Java安全策略的文件內容涵蓋了眾多條目,能夠進行對應授權,但是需要注意的是,這個過程是需要借助鑰箱來查找相關的證書及密鑰的。
在進行Java Web程序的有關安全技術的研究時,可以重點關注服務端與客戶端之間的通信過程,即以下幾方面。
(1)應用程在代碼層面和程序層面實施對應的安全防范措施時,應當不斷提升編寫應用程序的安全級別,同時也需要充分了解目標程序本身及其開發環境的穩定性及安全性。此外,還應當了解黑客進行網絡攻擊時常用的技術手段,也需要了解其心理、目標及技術等內容,以此幫助開發者能夠從不同角度補充和完善Web程序的安全防御性能。
(2)采用多種方式完成身份認證,比如數字簽名、數字證書等。通信雙方通過服務證書或者數字簽名來保證連接的真實性與安全性,從而實現通過SSL來完成雙向認證的目的,這樣能夠使數據在傳輸過程中的安全性和可靠性得到保證。
(3)利用計算機來有效減弱Web程序在通信方面所造成的負面影響。首先是Ajax,這是一種以交互式為基礎的Web開發技術,在Web應用領域受到了廣泛關注和好評。通過Ajax技術能夠使前端頁面與后臺之間以異步的方式實現數據交換,從而能夠全方面地提升用戶在使用Web應用程序的便捷性。通常來說,借助Ajax技術開發對應應用程序的過程中,當頁面發生改動的情況下需要與用戶進行及時通信,因此在客戶端與服務端之間會建立起專用的通信通道,以檢查所輸入的信息。在服務器需要對用戶開展對應認證工作時,就應當圍繞其所運行的服務器腳本展開。
其次是Cookie,這是一種用來使用戶身份認證工作簡單化以及提高認證準確性的數據緩存方法,它能夠幫助應用程序所在的服務器快速有效地完成用戶身份認證。借助該技術后,服務器能夠在用戶登錄成功后,將用戶的注冊信息記錄下來,并將其放到緩存中,當用戶有多次重復訪問需求時就會快速將該用戶信息提取使用,以此完成和簡化程序在身份認證時的重要重復性工作。借助cookie技術進行具體開發實踐時,cookie過去經常會遭到黑客攻擊,因此容易造成用戶相關信息的泄露,導致損失。其中,蠕蟲就是攻擊Web程序中所采用的cookie技術的一種主要病毒類型,其以極強的傳播力及破壞力能夠對應用程序的大部分安全漏洞做進一步的攻擊和破壞,從而竊取到腳本和會話信息。
第三就是JavaScript,這是一種擁有較為完善安全性能的腳本語言,能夠驅動事件和對象。借助該技術進行Web開發,擁有簡潔、生動的優勢,該技術在語言方面也是比較簡潔的,因此也受到了廣大開發者的喜愛,并將其廣泛應用在Web程序的實際開發中[3]。
(1)保護存儲在本地的數據。在Java Web程序運行過程中,倘若需要使用存儲在本地的數據來獨立運行的話,通常會存在一個問題,即用戶可以直接訪問數據庫,對數據文件進行寫入和讀取等操作,而不需要借助Java Web程序才能進行對應操作,這也表明用戶能夠任意讀取甚至是修改存儲在本地的數據。因此,應當采取措施保護存儲在本地的數據。此外,將數據存儲到云端等遠程服務器上也容易發生類似情況。因此,可以借助Java Web程序的加密功能加密存儲數據,在加密算法方面一般采用對稱密鑰,并且為了保障加密效果,進一步使公鑰和私鑰結合的安全性得到加強,可以在加密密鑰生成時加入經使用者設計的口令。其中,口令具體包括口令重置、口令的哈希算法以及口令策略等。
(2)防止出現程序復制。在Java Web程序的開發過程中,很容易出現代碼濫用的問題,急需一種能夠防止程序被復制的授權機制。此外,還需要通過安全管理的手段來保障源碼的安全性與完整性,可以通過將程序的源碼存儲在安全保障良好的代碼控制倉庫,并且設計嚴格的訪問和認證的機制,還需要關注源代碼倉庫及其相關工具所發生的安全問題。
(3)Java Web程序所面對的安全問題具有無法避免的特性,采用安全技術手段也無法將其完全清除,但是安全技術的應用能夠保證程序可以穩定、正常運行。因此,在Web應用程序引入安全保護效果更好的安全技術可以規避掉大部分的風險。開展Java Web程序的具體安全工作時,要做到有的放矢,應當合理結合安全技術手段的發展趨勢,對應用程序的安全防護工作進行自查和調整,這樣可以讓Java Web程序的安全工作能夠更有序、更完善。
安全技術作為保障Java Web應用程序穩定、正常、安全運行的一道技術屏障,應當在應用程序的開發階段就進行更為完備的安全考量。針對Java自身所具備的安全特性,可以借助安全技術來使程序的安全性得到保障。而Java Web 程序的實現與開發是基于Java基礎知識的應用,再通過緊密聯系Web技術,可以完成Web應用程序。在應用程序的開發過程中,應當從Java技術本身出發結合Web技術中所存在的安全漏洞采取具體防護措施,從而使應用程序在系統、網絡以及數據庫層面都能夠得到全面保障。綜上所述,在對應用程序進行具體分析時,應當參考實際情況建立對應的數據存儲、網絡通信及系統安全策略。