域名白名单是一种控制访问外部域,而程序又不能控制的安全模型。Cordova默认的安全策略是允许访问任何站点(试了一下,不是访问任何站点,是只能访问127.0.0.1站点)。在发布你的应用程序到工作环境之前,你应该制定一个访问特定网络域或者子域的白名单。
Cordova遵循W3C的Widget Access * 规范,它依赖于config.xml中的access元素指明可以访问的特定域,对于那些依赖于CLI工作的项目,该文件位于www的根目录,否则,对于特定平台的项目,下面的列表指明了位置;
下面的列子指示了白名单的语法:
- 访问google.com:
<access origin="http://google.com" />
- 访问安全的google.com(https://)
<access origin="https://google.com" />
- 访问子域 maps.google.com*:
<access origin="http://maps.google.com" />
- 访问google.com的所有子域:
<access origin="http://*.google.com" />
- 访问所有域:
<access origin="*" />
下面是使用CLI创建的项目的默认白名单
Amazon Fire OS 白名单
平台特定的白名单规则位于 res/xml/config.xml。
Android白名单
平台特定的白名单规则位于 res/xml/config.xml。
注意:在Android 2.3及之前版本,域名白名单仅仅是通过href超链接工作的,而不是引用源文件,如图片或者脚本。采取错误,避免应用程序被注入脚本。
通过HREF超链接导航到非白名单域名导致页面在默认浏览器中打开,而不是在应用程序中。
其他白名单域暂时不介绍