溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java何以保網絡安全(轉)

發布時間:2020-08-10 19:09:30 來源:ITPUB博客 閱讀:232 作者:BSDLite 欄目:編程語言
Java何以保網絡安全(轉)[@more@]  Java是惟一一種從設計的開始就考慮安全性的移動代碼。雖然并不完美,Java卻在程序的功能性和保護主機的安全性兩方面達到了最大的平衡,并且Java非常適合將代碼從一個平臺向另一個平臺的移植。

  Java采用一個稱為“sandbox”的模型來運行移動代碼。不被信任的移動代碼只能在sandbox中運行而不能進行多數針對主機的操作,比如讀、寫或刪除文件,監聽或接受網絡連接等等。

  當瀏覽器加載含有Java applet的頁面時,它從Web服務器上取Java的字節代碼,然后將代碼傳給稱為字節代碼檢驗器的Java部件。檢驗器確保字節代碼有正確的格式,不會超出內部堆棧的邊界,這就防止了程序的崩潰。第二個Java部件——類加載器,決定一個Java applet在何時、以何種方式將代碼加入正在運行的Java環境,保證此applet不會取代任何系統級別的內容。(每一個Java程序由一個或多個類、數據對象以及如何操作數據的方法所組成。)

  最后,還有第三個部件稱為安全管理器,當一個有潛在危險的方法試圖運行時,安全管理器就會起作用。是否運行這種有潛在危險的方法取決于需求此種方法的類來源于何處。舉例來說,內部本身的類比通過網絡獲取的類具有更大的特權。(因為這一原因,要注意千萬不要將不明出處的類通過將其路徑放在系統的CLASSPATH下而成為內部本身的類。)

  由此可見,字節編碼檢驗器、類加載器和安全管理器使得Java程序高效而安全。即使這樣,任何一個部件中的編程錯誤都會導致安全問題。這就是為什么某些攻擊只是針對某一個特定廠商的JVM,這是因為并不是Java本身的安全模型出了問題,而是因為實現這一模型的方法出了問題。

  隨著Java程序的復雜化、實用化,必須要脫離“sandbox”運行。這可以通過Java開發工具包JDK(Java Development Kit )1.1來實現,JDK在系統中擴展了加密的API,并且支持數字簽名。在Java文檔中(.JAR文件)的applet可以通過簽名來保護,允許最終用戶知道程序是來自可信任的地方,并且未經過任何修改。通過JDK1.1,如果用戶通過簽名確信applet代碼來自可信任的地方,便通知瀏覽器和JVM將獲取的代碼與本地代碼同樣對待,獲取完全的權限。

  Java 1.2(后來更名為Java 2)在安全方面更進一步,它提供權限不同的模型來運行不同的代碼,也就是說,不管是本地代碼、下載的信任代碼或下載的非信任代碼都可以在不同的特權環境中運行??偟恼f來,Java的安全漏洞較少,尤其是Java 2 ,在安全和性能兩方面都有很大提高。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女