資源描述:
《angularjs使用$sce控制代碼安全檢查_(kāi)angularjs》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、AngularJS使用$sce控制代碼安全檢查由于瀏覽器都有同源加載策略,不能加載不同域下的文件、也不能使用不合要求的協(xié)議比如file進(jìn)行訪(fǎng)問(wèn)。在angularjs中為了避免安全漏洞,一些ng-src或者ng-include都會(huì)進(jìn)彳亍安全校驗(yàn),因此常常會(huì)遇到一個(gè)iframe中的ng-src無(wú)法使用。什么是SCESCE,即strictcontextualescaping,我的理解是嚴(yán)格的上下文隔離…翻譯的可能不準(zhǔn)確,但是通過(guò)字面理解,應(yīng)該是angularjs嚴(yán)格的控制上下文訪(fǎng)問(wèn)。曲于angular默認(rèn)是
2、開(kāi)啟SCE的,因此也就是說(shuō)默認(rèn)會(huì)決絕一些不安全的行為,比如你使用了某個(gè)第三方的腳本或者庫(kù)、加載了一段html等等。這樣做確實(shí)是安全了,避免一些跨站XSS,但是冇時(shí)候我們自己想要加載特定的文件,這時(shí)候怎么辦呢?此時(shí)可以通過(guò)$sce服務(wù)把一些地址變成安全的、授權(quán)的鏈接.??簡(jiǎn)單地說(shuō),就像告訴門(mén)衛(wèi),這個(gè)陌生人其實(shí)是我的好朋友,很值得信賴(lài),不必?cái)r截它!常用的方法有:$sce.trustAs(type,name);$sce.trustAsHtml(value);$sce.trustAsUrl(value);$s
3、ce.trustAsResourceUrl(value);$scc?trustAsJs(value);-其中后面的兒個(gè)都是基于第一個(gè)api使用的,比如trsutAsUrl-其實(shí)調(diào)用的是trsutAs($sce.URL,〃xxxx〃);其中type可選的值為:$sce.HTML$sce.CSS$sce.URL//a標(biāo)簽屮的href,img標(biāo)簽屮的src$sce.RESOURCEURL//ng-include,src或者ngSrc,比如iframe或者Object$sce.JS來(lái)自官網(wǎng)的例子:ng-bin
4、d-html
〈/script>5、cdlltml^X/i>