临碣秘藏 2012-07-05
概述
Cordova项目中的域名白名单是一个用来控制外部域名访问的安全模块,比如http://google.com默认的安全机制是没有网络访问权限。开发者可以定义特定域名和子域名的访问权限。
规范
域名白名单是W3CWidgetAccess规范的基础。在部件访问(WidgetAccess)规范中,<access>元素用来定义特定域名的访问权限,在以后的更新中Cordova平台白名单将趋近W3CWidgetAccess规范。特别的,每个平台必须定义自身的白名单。
语法
访问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,通过元素<accessorigin="..."/>.声明
安卓支持白名单的全部语法
语法:
访问google.com:
<accessorigin="http://google.com"/>
BadaBada不支持白名单设置.默认的,所有域名都可以访问.
BlackBerryDetails白名单规则见目录www/config.xml通过元素<accessuri="..."/>声明.
查阅详细资料,见BlackBerryWebWorksAccessElementdocumentation.
语法访问google.com:
<accessuri="http://google.com"subdomains="false"/>
访问maps.google.com:
<accessuri="http://maps.google.com"subdomains="false"/>
访问google.com:全部子域名
<accessuri="http://google.com"subdomains="true"/>
访问全部域名,包括file://协议:
<accessuri="*"subdomains="true"/>
iOS详细
打开Cordova.plist.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(*)通配符比W3CWidgetAccess规范更灵活。
访问所有子域名和顶级域名(.com,.net,等):
*.google.*
SymbianBada不支持白名单设置.默认的,所有域名都可以访问.
webOSBada不支持白名单设置.默认的,所有域名都可以访问.
WindowsPhoneBada不支持白名单设置.默认的,所有域名都可以访问.