国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

你可能不知道的CORS跨域資源共享

2024-05-06 15:41:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

什么是CORS?

默認(rèn)情況下,為預(yù)防某些而已行為,瀏覽器的XHR對(duì)象只能訪問(wèn)來(lái)源于同一個(gè)域中的資源。但是我們?cè)谌粘?shí)際開(kāi)發(fā)中,常常會(huì)遇到跨域請(qǐng)求的需求,因此就出現(xiàn)了一種跨域請(qǐng)求的方案:CORS(Cross-Origin Resource Sharing)跨域資源共享。

CORS背后的原理是:使用自定的HTTP頭部與服務(wù)器進(jìn)行溝通,從而由服務(wù)器決定響應(yīng)是否成功。

了解下同源策略

源(origin)*:就是協(xié)議、域名和端口號(hào); 同源: 就是源相同,即協(xié)議、域名和端口完全相同; 同源策略:同源策略是瀏覽器的一個(gè)安全功能,不同源的客戶端腳本在沒(méi)有明確授權(quán)的情況下,不能讀寫(xiě)對(duì)方資源; 同源策略的分類: DOM 同源策略:即針對(duì)于DOM,禁止對(duì)不同源頁(yè)面的DOM進(jìn)行操作;如不同域名的 iframe 是限制互相訪問(wèn)。 XMLHttpRequest 同源策略:禁止使用 XHR 對(duì)象向不同源的服務(wù)器地址發(fā)起 HTTP 請(qǐng)求。 不受同源策略限制: 頁(yè)面中的鏈接,重定向以及表單提交(因?yàn)楸韱翁峤?,?shù)據(jù)提交到action域后,本身頁(yè)面就和其沒(méi)有關(guān)系了,不會(huì)管請(qǐng)求結(jié)果,后面操作都交給了action里面的域)是不會(huì)受到同源策略限制的。 資源的引入不受限制,但是js不能讀寫(xiě)加載的內(nèi)容:如嵌入到頁(yè)面中的<script src="..."></script>,<img>,<link>,<iframe>等

為什么要跨域限制

如果沒(méi)有 DOM 同源策略:那么就沒(méi)有啥xss的研究了,因?yàn)槟愕木W(wǎng)站將不是你的網(wǎng)站,而是大家的,誰(shuí)都可以寫(xiě)個(gè)代碼操作你的網(wǎng)站界面 如果沒(méi)有XMLHttpRequest 同源策略,那么就可以很輕易的進(jìn)行CSRF(跨站請(qǐng)求偽造)攻擊: 用戶登錄了自己的網(wǎng)站頁(yè)面 a.com,cookie中添加了用戶標(biāo)識(shí)。 用戶瀏覽了惡意頁(yè)面 b.com,執(zhí)行了頁(yè)面中的惡意 AJAX 請(qǐng)求代碼。 b.com 向 a.com發(fā)起 AJAX HTTP 請(qǐng)求,請(qǐng)求會(huì)默認(rèn)把 a.com對(duì)應(yīng)cookie也同時(shí)發(fā)送過(guò)去。 a.com從發(fā)送的 cookie 中提取用戶標(biāo)識(shí),驗(yàn)證用戶無(wú)誤,response 中返回請(qǐng)求數(shù)據(jù);數(shù)據(jù)就泄露了。而且由于Ajax在后臺(tái)執(zhí)行,這一過(guò)程用戶是無(wú)法感知的。 (附)有了XMLHttpRequest 同源策略就可以限制CSRF攻擊?別忘了還有不受同源策略的:表單提交和資源引入,(安全問(wèn)題下期在研究)

跨域決解方案

JSONP 跨域:借鑒于 script 標(biāo)簽不受瀏覽器同源策略的影響,允許跨域引用資源;因此可以通過(guò)動(dòng)態(tài)創(chuàng)建 script 標(biāo)簽,然后利用 src 屬性進(jìn)行跨域; 缺點(diǎn): 所有網(wǎng)站都可以拿到數(shù)據(jù),存在安全性問(wèn)題,需要網(wǎng)站雙方商議基礎(chǔ)token的身份驗(yàn)證。 只能是GET,不能POST。 可能被注入惡意代碼,篡改頁(yè)面內(nèi)容,可以采用字符串過(guò)濾來(lái)規(guī)避此問(wèn)題。 服務(wù)器代理:瀏覽器有跨域限制,但是服務(wù)器不存在跨域問(wèn)題,所以可以由服務(wù)器請(qǐng)求所要域的資源再返回給客戶端。 document.domain、window.name 、location.hash:借助于iframe決解DOM同源策略 postMessage:決解DOM同源策略,新方案 CORS(跨域資源共享):這里講的重點(diǎn)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 阿巴嘎旗| 罗定市| 广昌县| 福州市| 富平县| 松江区| 平舆县| 三明市| 黔东| 罗定市| 儋州市| 界首市| 丹东市| 澄城县| 黑山县| 金乡县| 长治县| 贺州市| 聂荣县| 临颍县| 陆丰市| 临西县| 泗洪县| 恩平市| 利津县| 滕州市| 昌江| 且末县| 晋城| 涪陵区| 老河口市| 汝州市| 龙南县| 高清| 班戈县| 新河县| 竹北市| 玉龙| 灵川县| 乌拉特前旗| 开阳县|