×

java虛擬機(jī)內(nèi)置的安全特性

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-07 11:27:10

 java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí)還進(jìn)行其他一些內(nèi)置的安全機(jī)制的操作。包括:1.類型安全的引用轉(zhuǎn)換。2.結(jié)構(gòu)化的內(nèi)存訪問(無指針?biāo)惴?。3.自動(dòng)化垃圾收集(不必顯式地釋放被分配的內(nèi)存)。4.數(shù)組邊界檢查。5.空引用檢查。

   e9a398d9edaaa4eb23f15d4fc504e289.png

<div>  java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí)還進(jìn)行其他一些內(nèi)置的安全機(jī)制的操作。包括:1.類型安全的引用轉(zhuǎn)換。2.結(jié)構(gòu)化的內(nèi)存訪問(無指針?biāo)惴?。3.自動(dòng)化垃圾收集(不必顯式地釋放被分配的內(nèi)存)。4.數(shù)組邊界檢查。5.空引用檢查。
  java程序只能使用類型安全,結(jié)構(gòu)化的方法去訪問內(nèi)存
  這樣可以避免黑客知道一個(gè)類裝載器在內(nèi)存中的位置,賦予一個(gè)指針指向那塊內(nèi)存,從而對類裝載器的數(shù)據(jù)進(jìn)行操作,而達(dá)到破壞安全系統(tǒng)的目的。
  未指明運(yùn)行時(shí)數(shù)據(jù)空間在java虛擬機(jī)內(nèi)部是怎樣分布的
  運(yùn)行時(shí)數(shù)據(jù)空間是指一些java虛擬機(jī)用來存儲(chǔ)一個(gè)運(yùn)行時(shí)java程序所需的內(nèi)存空間。包括:java棧(每個(gè)線程一個(gè)),一個(gè)存儲(chǔ)字節(jié)碼的方法區(qū),以及一個(gè)垃圾收集堆(用來存儲(chǔ)由運(yùn)行的程序創(chuàng)建的對象)。java虛擬機(jī)規(guī)范并未決定使用什么數(shù)據(jù)結(jié)構(gòu)來表示運(yùn)行時(shí)的數(shù)據(jù)空間,并且存放在內(nèi)存中的哪個(gè)位置。這樣,黑客就不能夠憑借class文件中的內(nèi)容,知道內(nèi)存中數(shù)據(jù)的內(nèi)存布局。這樣,即使能夠突破java虛擬機(jī)的內(nèi)存訪問限制,也會(huì)無法找到他們想找到的內(nèi)容。但是可以使用本地方法來達(dá)到破壞內(nèi)存的目的。
  異常的結(jié)構(gòu)化錯(cuò)誤處理
  當(dāng)一個(gè)違反安全的行為發(fā)生時(shí),java虛擬機(jī)會(huì)做一些異常的結(jié)構(gòu)化處理,java虛擬機(jī)將拋出一個(gè)異?;蛘咤e(cuò)誤,而不是崩潰。這個(gè)異?;蛘咤e(cuò)誤將導(dǎo)致這個(gè)線程死亡,而不是整個(gè)系統(tǒng)陷入癱瘓。異常機(jī)制使程序能夠?qū)⒖刂茝陌l(fā)生異常的地方轉(zhuǎn)到處理這個(gè)異常的情況。
  安全管理器和java api
  java安全模型的前三個(gè)組成部分-類裝載器體系結(jié)構(gòu),class文件檢驗(yàn)器和java內(nèi)置的安全特性一起達(dá)到一個(gè)共同的目的:
  保持java虛擬機(jī)實(shí)例和它正在運(yùn)行的應(yīng)用程序的內(nèi)部完整性,使得它們不受惡意或者有漏洞的代碼侵犯。
  java安全模型的第四部分:安全管理器:主要用于保護(hù)虛擬機(jī)的外部資源不被虛擬機(jī)內(nèi)運(yùn)行的文件或者有漏洞的代碼侵犯。
  安全管理器是一個(gè)單獨(dú)的對象,在運(yùn)行的java虛擬機(jī)中,它在訪問控制--對于外部資源的訪問控制--中起中樞作用。
  安全管理器負(fù)責(zé)兩個(gè)方面的工作:
  1)說明一個(gè)安全策略
  2)執(zhí)行這個(gè)安全策略
  java安全模型的不足
  無法阻止惡意移動(dòng)代碼不斷分配內(nèi)存直到內(nèi)存耗盡
  無法阻止惡意代碼不斷生成線程
  其實(shí)不僅是惡意代碼,我們自己寫代碼的時(shí)候也要避免不斷分配內(nèi)存和不斷生成線程的現(xiàn)象的產(chǎn)生。
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading