访问源以限制站点,但在连接到特定站点时允许所有内容

时间:2015-05-17 07:15:46

标签: cordova intel-xdk

我使用的是英特尔XDK,但我认为这是一个更普遍的问题,适用于Cordova和CORS。

我想将我的应用程序限制在我的域名中:

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

但是,我的应用程序使用Google+登录。所以,我还需要:

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

但是,Google还会加载其他几个网站,这意味着我还需要包含一堆其他网站,例如:

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

问题是Google登录可能随时更改为包含其他网站,这会导致我的应用中断。现在,我认为Google登录有自己的CORS保护,所以我应该可以允许它加载任何东西。

有没有办法说出类似“仅允许我的域名和其他域名”的内容,但允许在连接到其他域时加载的所有内容(本例中为accounts.google.com)&#39; ?或者可能:&#39;仅允许我的域名和其他域名,但对于其他域名依赖于其他域名强制执行的CORS控制&#39;?

1 个答案:

答案 0 :(得分:0)

是的,这是您需要做的Cordova配置。在XDK中,可以通过转到 Projects 选项卡的 Build Settings 部分来完成。您会看到一个名为域列表的字段,您可以在其中输入要限制应用访问权限的域列表。它可能设置为&#39; *&#39; - 这意味着整个世界。&#34;如果将鼠标悬停在右侧的(i)图标上,它将为您提供指向如何指定域名白名单的Cordova文档的链接。

请注意,在Cordova CLI 5(XDK尚不支持)中,这会再次(稍后)更改为略有不同的系统。当XDK支持该版本的Cordova系统时,设置对话框可能会改变,但基本思想仍将保留,列出白名单的域名。