修改科尔多瓦白名单
其中一个安全补丁涉及创建非http/s
协议新的白名单。如果您的应用程序使用除http://
和https://
之外的其他协议,例如sms:
,mailto:
,geo:
,tel:
等,则您需要进行一些配置更改以将这些协议添加到白名单。
这是很容易做到:
- 开拓科尔多瓦config.xml文件,位于:yourProject - >应用程序 - > yourProject - > Android的 - >本地 - >水库 - - > xml - > config.xml。注意:如果您的文件位于您的项目 - >应用程序 - > yourProject - > android - > nativeResources - > res - > xml,您将必须对此文件进行更改(在nativeResources文件夹下),因为如果这个文件存在,当应用程序重建时,它将覆盖/ native /文件夹中的config.xml。
滚动到您的白名单条目。你应该看到这样的上市项目:
<access origin="https://my.company.com/resources" />
<access origin="http://*.othersupplier.com" />
对于所使用的每一个非HTTP/HTTPS协议,则必须添加白名单条目是这样的:
<access origin="sms://*" launch-external="true" />
<access origin="mailto://*" launch-external="true" />
推出-external属性将告诉Cordova允许此URL由Android系统中的其他应用程序处理 - 而不是由当前运行的Cordova/Worklight应用程序处理。
这意味着当用户点击<a href="sms:555...">
链接时,Android会让任何注册到sms:
的应用程序处理请求。
如果是在白名单中的唯一入口是这样的:
<access origin="*" />
那么你的应用程序将允许任何互联网资源,这可能会打开你的应用程序对某些类型的攻击资源请求。
您应该列出您希望能够访问的标签中的特定域。
如果你的白名单看起来是这样的:
<access origin="https://www.ibm.com" />
<access origin="https://my-worklight-server.company.com" />
和你的应用程序中,你利用mailto:
协议打开用户的电子邮件客户端,并且geo:
协议来显示地图,那么你应该修改白名单看起来像:
<access origin="https://www.ibm.com" />
<access origin="https://my-worklight-server.company.com" />
<access origin="mailto://*" launch-external="true" />
<access origin="geo://*" launch-external="true" />
HTML:
<a href="tel:+212x-xx-xx-xx-xx">Call</a>
加入档案“config。XML”:
<access origin="tel:*" launch-external="yes"/>
来源:
https://www.ibm.com/developerworks/community/blogs/worklight/entry/action_required_cordova_android_security_update?lang=en`
我会试试看AAhad。非常感谢你。只有一个问题:它会打开InAppBrowser然后重定向,还是直接进入电话或电子邮件应用程序?因为屏幕上的中间阶段(通过InAppBrowser)并不是一个好的体验。再次感谢。 – abelabbesnabi 2014-10-09 15:49:54