musiclee
musiclee
  • 发布:2015-04-16 20:19
  • 更新:2016-12-06 20:58
  • 阅读:2779

新建webview打开外网链接安全吗

分类:HTML5+

如题,如果新建一个webview,然后在其中打开外部网站的网页,担心外部网页利用js脚本来调用本地的HTML5+ API,那样岂不是很容易就攻击到用户手机了? 请问存在这个风险吗?如果有怎么解决?

2015-04-16 20:19 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

扩展API是一把双刃剑,提供能力等同时不可避免引入潜在安全隐患。
首先5+ API的所有功能都是模块化的,在业务上使用不到的5+ API模块就不要包含进来(不仅杜绝安全隐患,还能建设apk包的大小),另外在Android上还可以自定义使用的系统权限(http://ask.dcloud.net.cn/article/101);
而所有5+ API都考虑了安全问题,避免引发致命的安全问题,如文件系统操作引用沙盒机制(只允许应用访问自身的特定目录)、应用资源目录(www目录)不可写等。
对于跳到外网链接,首先从产品设计的角度来讲,应该避免跳到一些不安全的外网地址;
另外也可通过向webview注入js(Webview的setJsFile方法)重写5+ API来避免被调用。

DCloud_UNI_FXY

DCloud_UNI_FXY

@DCloud_App_Array

Leytton

Leytton

@DCloud_App_Array @DCloud_MUI_FXY 上述回答还是没解决根本问题。app总是不可避免地调用服务器上的网页(即使是自己的),现在这些网页能直接调用用户手机上的任意H5+接口,问题太严重了。

Leytton

Leytton

解决了
embed.setJsFile( "_www/js/noPlus.js" );

noPlus.js内容
if(window.plus){window.plus=null;}

那么问题来了、setJsFile里的js文件执行如果在HTML之前,那么会被HTML里的js重写,如果在HTML之后,那么HTML里的js已经执行了,两种情况都应该拦截不到,为什么setJsFile会有效呢?

该问题目前已经被锁定, 无法添加新回复