2015-05-17 33 views
0

我使用英特爾XDK,但我認爲這是一個適用於科爾多瓦和CORS一個更具普遍性的問題。訪問原產地限制的網站,但允許一切,當連接到特定的網站

我想我的應用程序限制爲我的域名:

<access origin="https://www.example.com"/>

然而,我的應用程序使用的Google+登錄。所以,我還需要:

<access origin="https://accounts.google.com"/>

但是,谷歌還加載了幾個其他網站,這意味着我還需要包括很多其他的網站,如:

<access origin="https://accounts.youtube.com"/> 
<access origin="https://ssl.gstatic.com"/> 
<access origin="https://fonts.gstatic.com"/> 

問題是,Google登錄可能會在任何時候更改爲包含其他網站,這會導致我的應用程序中斷。現在,我想像Google登錄有自己的CORS保護,所以我應該可以允許任何由它加載的東西。

有沒有辦法說類似「只允許我的域名,這等領域,但允許在連接到其他域(accounts.google.com在這種情況下)被加載一切」?或者可能:'只允許我的域和其他域,但是其他域依賴於由其他域強制執行的CORS控制'?

回答

0

是的,這是一個科爾多瓦配置,你需要做的。在該XDK它是由要去構建完成設置項目標籤的部分。您會看到一個名爲的域名列表,您可以在其中輸入要限制應用訪問權的域列表。它可能被設置爲'*' - 這意味着「整個世界」。如果將鼠標懸停在右側的(i)圖標上,它將爲您提供指向Cordova文檔的鏈接,該文檔介紹如何指定白名單的域。

注意,在科爾多瓦CLI 5(其中XDK尚不支持),這改變了(再次)以略微不同的系統。當XDK支持該版本的Cordova系統時,設置對話框可能會改變,但基本想法仍然存在,即列出白名單的域名。

+0

是的,但我怎麼讓一切谷歌負載(例如ssl.gstatic.com)沒有明確說明它。否則,如果Google更改,我的網站就會中斷。根據最後一段中的問題。 – acarlon

+0

如果您事先知道Google加載的所有內容都是* .google.com,則可以使用該表示法。但是,如果您不知道Google網站將加載什麼內容,則唯一的選擇是在域列表中使用單個*記錄。有關更多詳細信息,請參閱Cordova文檔:https://cordova.apache.org/docs/en/4.0.0/guide_appdev_whitelist_index.md.html – xmnboy