麻豆成人91精品二区三区,国产91在线播放,加勒比无码专区中文字幕,欧美黑人XXXX高潮猛交

×

類裝載器實(shí)現(xiàn)JAVA虛擬機(jī)的安全

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-12 10:59:26

類裝載器中的類裝載器體系結(jié)構(gòu)守護(hù)了被信任類庫的邊界,因?yàn)榧虞d器的類型不同,裝載以后分別放入不同的包里,包與包之間一般情況下是不能訪問的。

        類裝載器中的類裝載器體系結(jié)構(gòu)守護(hù)了被信任類庫的邊界,因?yàn)榧虞d器的類型不同,裝載以后分別放入不同的包里,包與包之間一般情況下是不能訪問的。

8587306230441712901.jpg

<div>  在版本1.2開始,除了啟動(dòng)類裝載器以外的每一個(gè)類裝載器,都有一個(gè)“雙親”類裝載器,在某個(gè)特定的類裝載器試圖以常用方式裝載類型以前,它都會(huì)以默認(rèn)的方式,把這個(gè)類委托給它的雙親來處理——請(qǐng)求雙親來裝載這個(gè)類型。這個(gè)雙親再依次請(qǐng)求它自己的雙親類來處理,依次類推,直到到達(dá)啟動(dòng)類裝載器,因?yàn)閱?dòng)類裝載器是沒有雙親的,處于最頂層了。在這個(gè)傳遞過程中,如果有一個(gè)雙親類裝載器有能力裝載這個(gè)類型,則這個(gè)類型的類裝載器返回這個(gè)類型,否則,這個(gè)類裝載器試圖自己來裝載這個(gè)類型。
  啟動(dòng)類裝載器只負(fù)責(zé)加載那些核心的Java API的class文件,因?yàn)楹诵腏ava API的class文件是用于“啟動(dòng)”Java虛擬機(jī)的class文件,所以,啟動(dòng)類裝載器的名字也因此而得。
  用戶自定義的類裝載器來負(fù)責(zé)其他class文件的裝載,在應(yīng)用程序啟動(dòng)以前,它至少創(chuàng)建一個(gè)用戶自定義類裝載器,也可能創(chuàng)建多個(gè),所有這些類裝載器被連接在一個(gè)雙親-孩子的關(guān)系鏈中,在這條鏈的頂端是啟動(dòng)類裝載器,末端是系統(tǒng)類裝載器,它是由Java應(yīng)用程序創(chuàng)建的,新的用戶定義類裝載器的默認(rèn)委派雙親。
  這里就簡要敘述一下一般用戶自定義類加載器的工作流程吧:
  1、首先檢查請(qǐng)求的類型是否已經(jīng)被這個(gè)類裝載器裝載到命名空間中了,如果已經(jīng)裝載,直接返回;否則轉(zhuǎn)入步驟2;
  2、委派類加載請(qǐng)求給父類加載器(更準(zhǔn)確的說應(yīng)該是雙親類加載器,真實(shí)虛擬機(jī)中各種類加載器最終會(huì)呈現(xiàn)樹狀結(jié)構(gòu)),如果父類加載器能夠完成,則返回父類加載器加載的Class實(shí)例;否則轉(zhuǎn)入步驟3;
  3、調(diào)用本類加載器的findClass(…)方法,試圖獲取對(duì)應(yīng)的字節(jié)碼,如果獲取的到,則調(diào)用defineClass(…)導(dǎo)入類型到方法區(qū);如果獲取不到對(duì)應(yīng)的字節(jié)碼或者其他原因失敗,返回異常給loadClass(…), loadClass(…)轉(zhuǎn)而拋異常,終止加載過程(注意:這里的異常種類不止一種)。
  這里就不在細(xì)說了,一般熟悉類加載器這部分知識(shí)應(yīng)該都比較熟悉,我們來繼續(xù)將,類加載器怎么實(shí)現(xiàn)安全的!
  類裝載器的體系結(jié)構(gòu)是通過剔除裝作被信任的不可靠的類,來保護(hù)那些可信任類庫的邊界,如果某個(gè)惡意的類可以成功的欺騙Java虛擬機(jī),使得Java虛擬機(jī)相信它是一個(gè)來自可靠源的可信類,那么,這個(gè)惡意類就可能突破沙箱的阻隔,為了防止這樣的情況,類裝載器體系結(jié)構(gòu)阻塞了危機(jī)Java虛擬機(jī)運(yùn)行時(shí)安全的潛在途徑。
  在雙親委派的情況下,啟動(dòng)類裝載器會(huì)在最可信的類庫-核心Java API-中檢查每個(gè)被裝載的類型,然后,才依次到標(biāo)準(zhǔn)擴(kuò)展,類路徑上的本地類文件中檢查,所以,如果網(wǎng)絡(luò)類裝載器裝載的某個(gè)代碼執(zhí)行時(shí),想要從網(wǎng)絡(luò)上下載一個(gè)和Java API中某個(gè)類型同名的類,例如Java.lang.Integer,它將不能成功,如果Java.lang.Integer的class文件已經(jīng)存在,將不會(huì)再裝載,它只能使用由它的雙親委派返回的類,這個(gè)類是由啟動(dòng)類裝載器裝載的,用這種方法,類裝載器的體系結(jié)構(gòu)就可以防止不可靠的代碼用自己的版本來替代可信任的類。
  還有一種可能,就是,我不是去替代你這個(gè)被信任的類,我是要在你被信任的類庫里插入一個(gè)全新的類型,會(huì)怎么樣?
  比如我們下載了一個(gè)類Java.lang.virus,這個(gè)請(qǐng)求一路向上委派給啟動(dòng)裝載器,但它無法找到這個(gè)成員,同時(shí)在已擴(kuò)展以及本地類路徑中也找不到,你的類裝載器將試圖從網(wǎng)絡(luò)上下載這個(gè)類。
  Java允許同一個(gè)包里面的類擁有相同的權(quán)限,而包外面的類則沒有這個(gè)權(quán)限,你的類加載進(jìn)Java.lang 包,那么也就擁有這個(gè)包的所有權(quán)限,它就可以其中被信任的類,這樣的一個(gè)不可靠的類的存在太可怕了!
  Java虛擬機(jī)是這樣布置的,不同的類加載器加載的類放在不同的包里,于是,這個(gè)從網(wǎng)絡(luò)上下載的類所屬于的包跟啟動(dòng)類裝載的類并不是在一個(gè)包里面,這樣,它就得不到其他可信任類的信息。而兩個(gè)包之間要允許可見,必須滿足同一個(gè)類裝載器裝載,這樣就可以避免不可靠類的侵犯。

免責(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)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

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

Loading
精品激情蜜臀在线| 成年人免费小视频| 亚洲色播基地| 小说区图片区激情区| 少妇18p| 极品少妇AV| 丁香导航激情| 本一道在线播放| 在线天堂中文在线资源网 | 国产AV无码专区亚洲AV软件| 日韩一区二区精品无码| 午夜丰满人妻| 久热这| 色播五月激情综合色| 97干少妇| 一区二区三区四天堂| 久久97久久97精品免视看| 超碰自碰| 最新亚洲国产网站| 欧美视频久久| heyzo欧美| 6080日韩无码不卡| 亚洲不卡av不卡一区二区| 99久久免费无码A级毛片| 午夜一区二区激情电影| 高清性色生活片免费| 欧美日韩精品在线观看| 狠狠躁狠狠躁东京热无码专区| 婷婷六月天综合站| 亚洲性爱一区三区| 欧美a级黄片| 亚洲人在线视频| 另类天堂久久| 日韩青草一区| 久久久无码精品一区人妻| 日韩精品无码中文字幕电影| 丁香六月久久久| 日韩无码精品一二三区| 草草影院欧美| 四虎网站免费片| 在线观看日韩|