跨域資源共享 (CORS) 的工作原理
CORS是一種允許從JavaScript請求資源(例如IBM® Cloudant® for IBM Cloud®資料庫中的 JSON 文件)的機制。
在這種情況下,JavaScript正在從另一個網域載入的網站上運行。
這些「跨域」請求通常會被網頁瀏覽器禁止。 這些請求使用 相同的來源安全性策略。
CORS 定義了瀏覽器和伺服器互動以確定是否允許請求的方式。 對於IBM Cloudant,CORS 在以下用例中可能是一個很好的解決方案。
-
您在
https://www.example.com
上有一個網站,並且您希望該網站上的腳本可以存取https://example.cloudant.com
中的資料。要實現此訪問,請將
https://www.example.com
添加到允許的來源列表中。 其效果是,從此網域載入的腳本將被允許向您的IBM Cloudant資料庫發出 Ajax 請求。 透過將 HTTP 授權與 CORS 請求結合使用,應用程式的使用者只能存取他們的資料庫。 -
您希望允許第三方存取您的資料庫。
例如,如果您有一個包含產品資訊的資料庫,請將其網域新增至允許的來源清單。 之後,您可以讓銷售合作夥伴透過在其網域上執行的JavaScript存取資訊。 其效果是在其網站上執行的腳本可以存取您的IBM Cloudant資料庫。
瀏覽器支援
所有目前版本的常用瀏覽器都支援 CORS。
版本 10 之前的Microsoft™ Internet Explorer版本提供對 CORS 的部分支援。 版本 8 之前的Microsoft™ Internet Explorer版本不支援 CORS。
安全
將敏感資料儲存在可以使用 CORS 存取的資料庫中是一個潛在的安全風險。 當您將某個網域放入允許的來源清單中時,您就信任該網域中的所有JavaScript。 如果在網域上執行的 Web 應用程式正在執行惡意程式碼或存在安全漏洞,則資料庫中的敏感資料可能會暴露。
此外,允許使用 HTTP 而不是 HTTPS 載入腳本,然後使用 CORS 存取數據,會帶來中間人攻擊可能修改腳本的風險。
為了降低中間人攻擊的風險,請遵循以下準則:
- 不允許來自所有來源的 CORS 請求。 換句話說,除非您確定要滿足以下條件,否則不要設定
"origins": ["*"]
:- 您希望允許公開存取資料庫中的所有資料。
- 瀏覽器中絕不會使用授予修改資料權限的使用者憑證。
- 僅允許來自 HTTPS 來源的 CORS 請求,而不允許來自 HTTP 的 CORS 請求。
- 確保在允許的來源網域上執行的 Web 應用程式受信任且不存在安全漏洞。
有關更多信息,請參閱有關 CORS 配置端點的 API 和 SDK 文件。
儀表板
IBM Cloudant儀表板中提供了 CORS 支援。
您可以使用儀表板中的 CORS 標籤來更新 CORS 設定。 請看下面的截圖:

若要查看目前的 CORS 配置,請在儀表板中開啟帳戶> CORS。
您可以使用 Enable CORS
啟用或停用 CORS。 此設定對應於 enable_cors
選項。 當您從應用程式內變更 CORS 配置。
若要指定為所有網域啟用 CORS,請選擇 All domains (*)
選項。
若要指定僅對確切的來源網域啟用 CORS,請使用 Restrict to specific domains
選項列出每個網域或子網域。 對於每個網域,提供完整的 URL,最好使用 https
前綴以提高安全性。