概述
Cordova项目中的域名白名单是一个用来控制外部域名访问的安全模块,比如http://google.com默认的安全机制是没有网络访问权限。开发者可以定义特定域名和子域名的访问权限。
规范
域名白名单是W3C Widget Access 规范的基础。在部件访问(Widget Access)规范中,<access>元素用来定义特定域名的访问权限,在以后的更新中Cordova平台白名单将趋近 W3C Widget Access规范。特别的,每个平台必须定义自身的白名单。
语法
访问 google.com:
http://google.com
访问安全连接 google.com (https://):
https://google.com
访问子域名 maps.google.com:
http://maps.google.com
访问 google.com上的全部子域名 (比如. mail.google.com 或 docs.google.com):
http://*.google.com
全部域名 (诸如 google.com 或 baidu.com):
*
Android:细节:
白名单规则见下载包res/xml/cordova.xml,通过元素<access origin="..." />.声明
安卓支持白名单的全部语法
语法:
访问 google.com:
<access origin="http://google.com" />
Bada Bada不支持白名单设置. 默认的, 所有域名都可以访问.
BlackBerryDetails白名单规则见目录www/config.xml 通过元素 <access uri="..." />声明.
查阅详细资料, 见BlackBerry WebWorks Access Element documentation.
语法访问 google.com:
<access uri="http://google.com" subdomains="false" />
访问maps.google.com:
<access uri="http://maps.google.com" subdomains="false" />
访问google.com:全部子域名
<access uri="http://google.com" subdomains="true" />
访问全部域名, 包括 file:// 协议:
<access uri="*" subdomains="true" />
iOS详细
- 打开 Cordova.plist.
- 在 Xcode中, 见目录 AppName/Supporting Files/Cordova.plist
- 在目录, 见AppName/Cordova.plist
- 在 ExternalHosts key下添加新的键值 .
- 建议使用 Xcode避免编辑原始 XML.
- 建议使用 Xcode避免编辑原始 XML.
iOS不支持域名协议(诸如. http:// a或https://) .
语法访问 google.com 和安全连接 google.com (https://):
google.com
访问子域名 maps.google.com:
maps.google.com
访问全部子域名 google.com (诸如 mail.google.com 或 docs.google.com):
*.google.com
访问全部域名(诸如 google.com 或 baidu.com):
*
IOS(*)通配符比W3C Widget Access 规范更灵活。
访问所有子域名和顶级域名 (.com, .net,等):
*.google.*
SymbianBada不支持白名单设置. 默认的, 所有域名都可以访问.
webOSBada不支持白名单设置. 默认的, 所有域名都可以访问.
Windows PhoneBada不支持白名单设置. 默认的, 所有域名都可以访问.