Java語言具有安全的特性,這得益于下面三個方面的支持。
用過Applet的程序員都知道沙箱這個詞,它同樣是為了確保安全。Applet的運行需要從網絡上下載到本地上來,在你確認它是否安全之前讓它訪問你的本地資源的話那將是非常危險的事情。因此java采用了沙箱的機制,讓applet運行在一個受限的環境內。
由于J2SE中的安全機制需要很大內存的支持,因此在J2ME(CLDC+MIDP)中并沒有采取。在J2ME中采用的是兩層安全結構,包括底層的KVM安全機制和上層的應用程序安全機制。
在KVM的安全機制中,主要是通過class文件驗證來確保安全的,一旦這個class文件是非安全的,比如它含有對危險內存空間的引用,那么KVM將不會運行它的。但是由于class文件在驗證上比較消耗時間,因此KVM的設計人員把這部分工作移植到開發階段了,我們看到源文件在編譯后會被驗證,你可以仔細看看ktoolbar的控制臺輸出。而在KVM里面做的驗證都是簡單的。
在應用程序層進行的限制主要是為了防止應用程序惡意破壞文件系統等設備。由于考慮到性能的問題,他沒有采取SecurityManager類的策略。因此與傳統的沙箱不同的是,基于CLDC/MIDP的沙箱模型作了如下的限制。
希望您讀完這篇文章能對J2ME的安全體系有一定的認識。
(出處:http://www.49028c.com)
新聞熱點
疑難解答