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