Skip to main content

CORS

CORS 概述

CORS(Cross-Origin Resource Sharing,跨來源資源共享)是一種安全機制,允許瀏覽器從不同的來源請求資源。由於瀏覽器的同源政策,網頁只能請求來自同一來源的資源,CORS 允許伺服器指定哪些來源可以訪問其資源。

CORS 的工作原理

  1. 預檢請求:當一個跨來源請求涉及到非簡單請求(如使用 PUT 或 DELETE 方法,或自定義標頭)時,瀏覽器會先發送一個 OPTIONS 請求以確認伺服器是否允許該請求。

  2. 響應標頭:伺服器在響應中使用 CORS 標頭來告訴瀏覽器允許的來源、方法和標頭。例如,Access-Control-Allow-Origin 標頭指定哪些來源可以訪問資源。

  3. 簡單請求:對於簡單請求(如 GET 或 POST 並且不使用自定義標頭),瀏覽器會直接發送請求,伺服器只需在響應中包含適當的 CORS 標頭。

CORS 的安全性

CORS 提供了一種靈活的方式來控制資源的訪問,但不當配置可能導致安全風險。伺服器應謹慎設置 Access-Control-Allow-Origin,避免使用通配符(*)來允許所有來源,特別是在處理敏感數據時。

CORS 的實現

  • 設置伺服器端標頭:伺服器需要在響應中添加適當的 CORS 標頭,以允許特定來源的請求。
  • 使用中介軟體:許多框架和庫(如 Express.js)提供了簡單的中介軟體來處理 CORS。

CORS 是一個強大的工具,正確配置可以增強應用的安全性和靈活性。

Citations: [1] https://docs-99.vercel.app/security/cors.html

CORS