簡體   English   中英

CORS 插件 / --disable-web-security 如何在瀏覽器上工作?

[英]How does CORS plugin / --disable-web-security work on browser?

我確定我不是唯一一個在對外部(甚至內部)API 端點進行 API 調用時使用/使用CORS plugins瀏覽器插件或--disable-web-security標志的人。 我用這個插件撥打了谷歌地圖相關的 API 電話。 但在同一應用程序中,ParseSDK API 調用不需要CORS--disable-web-security標志。

我的問題是:為什么這些端點的行為不同以及 CORS 插件如何解決問題(即使我們無法控制這些 API)?

提前致謝。

好吧,該插件所做的事情是非常不負責任的; 它實際上禁用了同源策略,該策略強制特定源上的網站只能向該源發出請求。

同源策略實際上只是阻止網站讀取 GET/POST 請求的響應,請求本身是發出的,因為它被認為是保存。

隨着時間的推移,這種良好的安全功能成為一種負擔,人們使用了像 JSONP 這樣的變通方法。

所以我們有了一種新的、標准化的方式來訪問外國來源:

CORS(跨源資源共享)是一種機制,允許 Web 服務器指定允許另一個源訪問其內容。 這是通過Access-Control-Allow-Origin: example.com ,它允許 example.com 訪問響應,即使響應來自不同的來源。

Access-Control-Allow-Credentials: true還允許在請求中發送憑據,其中包括 cookie 和 HTTP 基本身份驗證。

您還可以為Access-Control-Allow-Origin: *指定通配符,它​​允許所有網站訪問此響應。 但是,當您執行此操作時,您必須指定Access-Control-Allow-Credentials: false ,因此不會公開任何憑據。

這是在 Internet 中實現公共可訪問 AJAX API 的唯一正確方法。

然而這個插件只是簡單的完全禁用同源策略,這是極其危險的

您發布的鏈接(您是否閱讀了說明?)准確指定了擴展程序的作用 - 它向所有響應添加了Access-Control-Allow-Origin: *標頭。 這是一個 CORS 標頭,通常服務器發送它以通知瀏覽器您可以從任意來源發出請求。

Parse SDK 可能在其服務器端支持 CORS。

僅供參考,當大多數人說 CORS 時,他們並不是指瀏覽器擴展。 他們指的是稱為 CORS 的網絡標准。 文檔如下。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM