服務(wù)A:http://192.168.126.129:5001
服務(wù)B:http://192.168.126.129:5002或者任意一個(gè)請(qǐng)求A時(shí)是跨域的地址
創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為都勻企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),都勻網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
現(xiàn)在服務(wù)A有了它自己的cookie,我們?cè)诜?wù)B通過ajax訪問服務(wù)A或者與A同域的任何一個(gè)服務(wù)(如http://192.168.126.129:8002,http://192.168.126.129:8003....等)時(shí),是一種跨域訪問方式,默認(rèn)情況下A的cookie是不會(huì)隨帶發(fā)的,要想這些服務(wù)端(A或者與A同域的服務(wù)端)接收到這些cookie,僅僅需要發(fā)送時(shí)設(shè)置ajax:
withCredentials=true
這樣服務(wù)端就能收到這些cookie了,事情告一段落了。
注意:假設(shè)服務(wù)A有個(gè)簽發(fā)cookie的服務(wù),服務(wù)B ajax跨域調(diào)用A的這個(gè)服務(wù)來設(shè)置A的cookie,此時(shí)要想Set-Cookie生效,B調(diào)用時(shí)也要帶上withCredentials=true,否則不能保存cookie
但是這個(gè)時(shí)候服務(wù)端A對(duì)這個(gè)跨域的ajax請(qǐng)求的響應(yīng),瀏覽器默認(rèn)是不會(huì)接受的,因?yàn)榭缬蛄耍?br/>此時(shí)A服務(wù)端需要做如下設(shè)置:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin:(B的協(xié)議:域名+端口,.net core的CORS中間件也可以寫個(gè)*號(hào))
缺一不可,注意這僅僅是為了瀏覽器能接收這個(gè)請(qǐng)求的響應(yīng),不設(shè)置,不會(huì)阻止請(qǐng)求和cookie的發(fā)送?。?!
注意:
上面說的只對(duì)ajax請(qǐng)求有效。如果B系統(tǒng)有個(gè)鏈接指向A系統(tǒng),那么點(diǎn)擊這個(gè)鏈接,cookie默認(rèn)還是會(huì)發(fā)過去的,這就是很多csrf威脅的根源。要想避免這種情況,可設(shè)置A的cookie的SameSite屬性:
none:不做任何阻止,這是默認(rèn)值
Strict:阻止任何從A系統(tǒng)外的地方訪問A系統(tǒng)時(shí)帶A的cookie,有效阻止CSRF威脅
Lax: 只會(huì)在使用危險(xiǎn)HTTP方法或異步請(qǐng)求(比如script,img,link,iframe,表單發(fā)起的post請(qǐng)求)發(fā)送跨域cookie的時(shí)候進(jìn) 行阻止,其他同步請(qǐng)求(打開新窗口,改變當(dāng)前頁面的get請(qǐng)求)不會(huì)被阻止,一般的cookie可以設(shè)置為strict,會(huì)話cookie為了好的體驗(yàn),建議設(shè)為L(zhǎng)ax,這個(gè)時(shí)候A系統(tǒng)的服務(wù)最好保證Get請(qǐng)求僅僅是讀取類的請(qǐng)求。
本文標(biāo)題:withCredentials在跨域發(fā)送cookie時(shí)的應(yīng)用
轉(zhuǎn)載源于:http://chinadenli.net/article10/pghogo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)頁設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)