Web世界的邦交國政策 — 跨來源資源共用(Cross-Origin Resource Sharing, CORS)

更新於 2023/04/20閱讀時間約 3 分鐘
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微小習慣的積累讓我們享受複利的效應。OO
RSC
CORS(Cross-Origin Resource Sharing),中文為跨網域資源共用,上一篇我們談到「Web - 同源政策(Same Origin Policy)」,概念很好沒錯,防止了一些惡意的攻擊,以一個國家來說,總不可能永遠封閉大門,拒絕對外交流,將所有其他來源都視為攻擊,因此才造就了CORS,透過有限度的開放,讓特定來源可以進入。
CORSSame Origin Policy的一種特別條款,簡單來說就是「我需要事前準備哪些東西?」才能跨越同源的限制,順利存取資源,就如同國家之間的入境一樣,需要事先準備護照,而根據政策的制定來檢核哪些國家的人能夠進入本國。

如何運作?

首先在瀏覽器與Server之間的溝通時,CORS規範允許Server端回傳一些Header,而瀏覽器則根據這些Header來檢查是否可以跨越同源(Same Origin Policy)的限制,而最主要的一個Http Header就是Access-Control-Allow-Origin,這個標頭非常關鍵,藉由這個Header告訴瀏覽器我們允許哪些來源進入伺服器存取資源。
但是除了Access-Control-Allow-Origin之外還有以下兩個標頭也是檢查的重點:
  1. Access-Control-Allow-Methods: 伺服器允許存取的方法(GET、POST、...)。
  2. Access-Control-Allow-Headers: 伺服器允許存取的標頭。
那麼在瀏覽器發送前會分為以下兩種請求,簡單請求(Simple)和預檢請求(Preflight),為什麼需要特別區分呢? 主要是檢查CORS的時機點在於伺服器回傳的時候,但試想,如果一個重要的命令(刪除),在尚未檢查之前就執行,那麼這是一件非常危險的事情, 因此才會進行區分。

簡單請求(Simple Request)

這類型的請求並不會造成太大的損傷,因此會直接將請求條件送到伺服端進行,伺服端回應後,才進行檢核動作,而簡單的請求條件如下:
  • Http方法: GET、POST、Head。
  • Content-Type:application/x-www-form-urlencoded
    multipart/form-data
    text/plain

預檢請求(Preflight Request)

這類型的請求就可能具有危險性,因此會先探詢伺服器之後允許的範圍之後,若該次的請求符合條件,才將真正的請求往後送,如此一來便能多一層保障。

如何透過CORS機制允許不同源存取?

由上述的介紹中我們可以知道這個機制最關鍵的決定者在於後端伺服器,因此伺服端在設計時,需要問自己以下幾個問題來決定跨域的存取權:
  • 請求的來源(Access-Control-Allow-Origin): 有些開發者會使用「*」,代表所有網域都可以存取,雖然簡單,但也添增風險,因此如果屬於開放式服務,就不建議這麼做了。
  • 請求的方法(Access-Control-Allow-Methods): 讀、寫、修改、刪除...。
  • 請求的資料格式(Access-Control-Allow-Headers): json、xml...。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
116會員
261內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 同源(Origin)主要由以下三個部分組成:
何謂DAO? 🔔 傳送門: 一起加入Potato Media 共創Web3.0部落格生態圈吧 🔔 去中心化(Decentralized) 自治(Autonomous) 組織(Corporations) DAO與傳統企業不同之處 傳統組織 官僚體系。 程序非公開透明。 權力集中。 去中心化組織
會談這個主題主要是工作上預計進行Pair Programming的模型來開發,因而蒐集了一些關於Pair Programming這方面的相關概念與執行方向,並整理讓大家共同參考、討論。 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 優點 提升程式碼品質 缺點
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 同源(Origin)主要由以下三個部分組成:
何謂DAO? 🔔 傳送門: 一起加入Potato Media 共創Web3.0部落格生態圈吧 🔔 去中心化(Decentralized) 自治(Autonomous) 組織(Corporations) DAO與傳統企業不同之處 傳統組織 官僚體系。 程序非公開透明。 權力集中。 去中心化組織
會談這個主題主要是工作上預計進行Pair Programming的模型來開發,因而蒐集了一些關於Pair Programming這方面的相關概念與執行方向,並整理讓大家共同參考、討論。 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 優點 提升程式碼品質 缺點
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
作為一個非常不專業的前端初學者,有陣子常常卡在公司官網,要插入 Youtube 影片無法RWD(響應式)的問題。 跟不熟悉 網頁技術的朋友們介紹,RWD 就是指網頁的排版能跟著螢幕的大小縮放、變化編排,在這個人手一機的時代,特別重要。
Thumbnail
透過 Web Workers,您可以將這些耗時的操作放在另一個執行緒中處理,減輕主執行緒的負擔,提高網站的效能和響應速度。這篇文章提供了詳細的解釋和示例,幫助您快速上手使用 Web Workers。不要錯過這個可以改善網站效能的實用技巧!
Thumbnail
「日常型」社群平台,如Facebook,聯繫朋友和家人,加入各種社團!「生活型」社群平台,如Instagram和小紅書,分享生活的美好時刻!「新聞型」社群平台,如Twitter和Threads,緊跟即時快訊,了解世界大事!「娛樂型」社群平台,如Youtube和TikTok,這裡是休閒娛樂的樂園!
Thumbnail
本文講述了社群媒體帶來的個人效益和平台效益。其中提到了建立個人品牌的重要性,以及專業交流、學習、創作內容和自媒體的優勢。此外,社交聯繫和友誼也是社群媒體的一個重要面向。文章還探討了社群媒體的規模經濟和經濟效益,以及市場競爭和廣告效益。最後,提到了社群媒體的創新效益,這是一個不斷演進和發展的領域。
Thumbnail
本文探討社群媒體的過去、現在,以及Web 3.0的未來!😲回顧社群媒體的發展史,從FB的統治到IG的崛起,再到Twitter被改名成X。現代社交媒體和串流平台為我們提供了更多的選擇和自由。Web 3.0利用機器學習、人工智慧和區塊鏈技術,使網路更聰明、更分散、更關心隱私。你會接受新時代的知識嗎?
Thumbnail
相信有在 Follow 動畫產業抑或是 NFT 領域的人都有在過年期間被這則新聞給震撼到,在 2023.01.23 初二的時候,Golden Wolf(下稱 GW) 在 Twitter 上發佈了一則驚人的消息,表明公司即將被 Web3 的公司 Doodles 給收購。
Thumbnail
前言 此篇會是2021當年加密貨幣很火的年代,當時幣圈的牛市帶來了很多機會,因此此篇會分享幾篇 FTX 加密資產交易所的新聞與資訊,主要是關於加密資產交易所FTX 創辦人的過去。 加密貨幣富豪的過去 【背景】:加密資產交易所 FTX 創辦人兼執行長山姆.班克曼-弗里德(Sam Bankman-Fri
Thumbnail
web 3.0的未來是接近了!(目前 Web 2.5) 1.目前幣圈、NFT的門檻相當高。 (各國金融與法律制度是關鍵) 2.Web3.0的人才是什麼類型的? (這裡可能要做點research,但厲害的人到哪裡都可以適應) 3. 星爺左邊的圖表才是關鍵,大概是未來的 Road map 。 (我大膽猜
Thumbnail
有這個構思,初心是希望可以持續地向讀者們更新曾經被成為《NFT 社群研究報告》的項目的最新進展,順便跟大家跟進這些曾經的主角在被分析後,又經歷了什麼樣的事或發展的進度如何。本熊希望自己的報告不會看起來沒頭沒尾,所以想以更有趣的方法表達文字,借此讓任何小消息也有變成新聞的可能。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
作為一個非常不專業的前端初學者,有陣子常常卡在公司官網,要插入 Youtube 影片無法RWD(響應式)的問題。 跟不熟悉 網頁技術的朋友們介紹,RWD 就是指網頁的排版能跟著螢幕的大小縮放、變化編排,在這個人手一機的時代,特別重要。
Thumbnail
透過 Web Workers,您可以將這些耗時的操作放在另一個執行緒中處理,減輕主執行緒的負擔,提高網站的效能和響應速度。這篇文章提供了詳細的解釋和示例,幫助您快速上手使用 Web Workers。不要錯過這個可以改善網站效能的實用技巧!
Thumbnail
「日常型」社群平台,如Facebook,聯繫朋友和家人,加入各種社團!「生活型」社群平台,如Instagram和小紅書,分享生活的美好時刻!「新聞型」社群平台,如Twitter和Threads,緊跟即時快訊,了解世界大事!「娛樂型」社群平台,如Youtube和TikTok,這裡是休閒娛樂的樂園!
Thumbnail
本文講述了社群媒體帶來的個人效益和平台效益。其中提到了建立個人品牌的重要性,以及專業交流、學習、創作內容和自媒體的優勢。此外,社交聯繫和友誼也是社群媒體的一個重要面向。文章還探討了社群媒體的規模經濟和經濟效益,以及市場競爭和廣告效益。最後,提到了社群媒體的創新效益,這是一個不斷演進和發展的領域。
Thumbnail
本文探討社群媒體的過去、現在,以及Web 3.0的未來!😲回顧社群媒體的發展史,從FB的統治到IG的崛起,再到Twitter被改名成X。現代社交媒體和串流平台為我們提供了更多的選擇和自由。Web 3.0利用機器學習、人工智慧和區塊鏈技術,使網路更聰明、更分散、更關心隱私。你會接受新時代的知識嗎?
Thumbnail
相信有在 Follow 動畫產業抑或是 NFT 領域的人都有在過年期間被這則新聞給震撼到,在 2023.01.23 初二的時候,Golden Wolf(下稱 GW) 在 Twitter 上發佈了一則驚人的消息,表明公司即將被 Web3 的公司 Doodles 給收購。
Thumbnail
前言 此篇會是2021當年加密貨幣很火的年代,當時幣圈的牛市帶來了很多機會,因此此篇會分享幾篇 FTX 加密資產交易所的新聞與資訊,主要是關於加密資產交易所FTX 創辦人的過去。 加密貨幣富豪的過去 【背景】:加密資產交易所 FTX 創辦人兼執行長山姆.班克曼-弗里德(Sam Bankman-Fri
Thumbnail
web 3.0的未來是接近了!(目前 Web 2.5) 1.目前幣圈、NFT的門檻相當高。 (各國金融與法律制度是關鍵) 2.Web3.0的人才是什麼類型的? (這裡可能要做點research,但厲害的人到哪裡都可以適應) 3. 星爺左邊的圖表才是關鍵,大概是未來的 Road map 。 (我大膽猜
Thumbnail
有這個構思,初心是希望可以持續地向讀者們更新曾經被成為《NFT 社群研究報告》的項目的最新進展,順便跟大家跟進這些曾經的主角在被分析後,又經歷了什麼樣的事或發展的進度如何。本熊希望自己的報告不會看起來沒頭沒尾,所以想以更有趣的方法表達文字,借此讓任何小消息也有變成新聞的可能。