HTTP Headers 之 Origin

概念

HTTP 協(xié)議中的 Origin Header 存在于請(qǐng)求中,用于指明當(dāng)前請(qǐng)求來自于哪個(gè)站點(diǎn)

字段內(nèi)容

Origin 僅僅包含站點(diǎn)信息,不包含任何路徑信息。

語法

Origin: ""
Origin: "<schema>://<host>[:port]"
// 例如
Origin: "https://baidu.com"
// 錯(cuò)誤示范,包含了路徑信息
Origin: "https://baidu.com/"

參考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Origin

應(yīng)用

CORS

當(dāng)我們的瀏覽器發(fā)出跨站請(qǐng)求時(shí),行為正確的服務(wù)器會(huì)校驗(yàn)當(dāng)前請(qǐng)求是不是來自被允許的站點(diǎn)。服務(wù)器就是通過 Origin 字段的值來進(jìn)行的判斷。

當(dāng)服務(wù)器的配置出錯(cuò)時(shí),比如配置成了 https://baidu.com/,則可能造成一些難以理解的問題。

比如有的瀏覽器(IE)能夠請(qǐng)求成功,而有的瀏覽器卻請(qǐng)求失?。–hrome)。這不是因?yàn)榍耙粋€(gè)瀏覽器行為正確,而是因?yàn)榍耙粋€(gè)瀏覽器發(fā)出請(qǐng)求時(shí)沒有帶上 Origin 而后一個(gè)瀏覽器帶上了正確的 Origin。而在服務(wù)器端,因?yàn)闆]有 Origin Header,所以認(rèn)為這不是一次 CORS 請(qǐng)求,所以沒有進(jìn)行 CORS 校驗(yàn)。這也反過來要求服務(wù)端強(qiáng)制請(qǐng)求帶上 Origin Header,才能進(jìn)一步保證服務(wù)器的安全性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.瀏覽器的同源安全策略 瀏覽器只允許請(qǐng)求當(dāng)前域的資源,而對(duì)其他域的資源表示不信任。 那怎么才算跨域呢? 請(qǐng)求協(xié)議...
    趙客縵胡纓v吳鉤霜雪明閱讀 2,084評(píng)論 1 10
  • 引用自HTTP訪問控制(CORS) 當(dāng) Web 資源請(qǐng)求由其它域名或端口提供的資源時(shí),會(huì)發(fā)起跨域 HTTP 請(qǐng)求(...
    有涯逐無涯閱讀 2,674評(píng)論 0 4
  • http://www.91ri.org/tag/fuzz-bug 通常情況下,有三種方法被廣泛用來防御CSRF攻擊...
    jdyzm閱讀 4,391評(píng)論 0 5
  • 跨域資源共享 CORS 對(duì)于web開發(fā)來講,由于瀏覽器的同源策略,我們需要經(jīng)常使用一些hack的方法去跨域獲取資源...
    默默先生Alec閱讀 665評(píng)論 0 0
  • 今晚又是不愉快的一晚,啊不知不覺用了“又”字。我也會(huì)累,不想因?yàn)槟阌绊懳倚那樽笥摇F鋵?shí),你知不知道你這樣很幼稚.....
    楊國(guó)邦xx閱讀 218評(píng)論 0 0

友情鏈接更多精彩內(nèi)容