通過使用充當(dāng)客戶端和應(yīng)用程序或服務(wù)之間的代理,驗(yàn)證和進(jìn)行消毒的請(qǐng)求,并將它們之間的請(qǐng)求和數(shù)據(jù)的專用主機(jī)實(shí)例保護(hù)的應(yīng)用程序和服務(wù)。這可以提供一個(gè)額外的安全層,并限制了系統(tǒng)的攻擊面。
應(yīng)用程序通過接受和處理請(qǐng)求揭露它們的功能提供給客戶。在云托管方案,應(yīng)用程序暴露終端客戶機(jī)連接,一般包括代碼來處理來自客戶端的請(qǐng)求。此代碼可以執(zhí)行認(rèn)證和驗(yàn)證,一些或所有請(qǐng)求的處理,并有可能訪問存儲(chǔ)等服務(wù)代表客戶端的。
如果惡意用戶能夠危及系統(tǒng)和訪問應(yīng)用程序的托管環(huán)境,它使用安全機(jī)制,諸如憑證和存儲(chǔ)密鑰,并且該服務(wù)并訪問數(shù)據(jù),被暴露。因此,惡意用戶可能能夠獲得無節(jié)制訪問敏感信息和其他服務(wù)。
為了盡量減少接觸到敏感信息和服務(wù)客戶的風(fēng)險(xiǎn),去耦,揭露出從處理請(qǐng)求并訪問存儲(chǔ)在代碼公共端點(diǎn)的主機(jī)或任務(wù)。這可以通過使用一個(gè)立面或?qū)S萌蝿?wù),與客戶端進(jìn)行交互,然后手拿開的請(qǐng)求(可能通過一個(gè)去耦接口)連接到主機(jī)或任務(wù)將要處理的請(qǐng)求來實(shí)現(xiàn)。圖1示出了這種方法的一個(gè)高層視圖。
圖1 - 這種模式的高級(jí)概述
守門員模式可以簡單地用來保護(hù)存儲(chǔ),或者它可被用作一個(gè)更全面的立面,以保護(hù)所有的應(yīng)用程序的功能。的重要因素是:
此圖案有效地作用就像一個(gè)防火墻在一個(gè)典型的網(wǎng)絡(luò)拓?fù)洹K试S關(guān)守來檢查請(qǐng)求并做出關(guān)于是否將請(qǐng)求傳遞到可信主機(jī)決定(有時(shí)也被稱為鑰匙之王),執(zhí)行所需的任務(wù)。這一決定通常需要守門員來驗(yàn)證并將其傳遞到受信任主機(jī)前消毒要求的內(nèi)容。
在決定如何實(shí)現(xiàn)這個(gè)模式時(shí),請(qǐng)考慮以下幾點(diǎn):
這種模式非常適合于:
在一個(gè)云托管的情況下,該模式可以通過使用一個(gè)內(nèi)部端點(diǎn),一個(gè)隊(duì)列,或存儲(chǔ)作為中間通信機(jī)制解耦從受信任的角色和服務(wù)應(yīng)用程序中的關(guān)守角色或虛擬機(jī)來實(shí)現(xiàn)。圖 2 示出了使用內(nèi)部的端點(diǎn)時(shí)的基本原則。
圖 2 - 的模式使用云服務(wù)的網(wǎng)絡(luò)和輔助角色的一個(gè)例子
更多建議: