小权
小权
  • 发布:2020-01-17 09:49
  • 更新:2020-01-17 12:15
  • 阅读:80

如何解决5+app中第三方H5页面能使用plus调用5+接口的安全性问题

分类:HTML5+

场景1:
我创建了一个5+app,里面通过plus.storage缓存了一些重要信息(如用户调用服务端接口的token)。当我在app内打开一个第三方的H5页面时,这个第三方页面也是可以通过plus来调用5+接口的。
例如,第三方页面如果知道了我app内缓存的的key,他就可以通过plus.storage.getitem(key)来获取到对应value,甚至他还可以直接写plus.storage.setitem(key,newValue)来更新我的缓存。
这样就毫无安全性可言了。

场景2:
我创建了一个5+app,app里我开发了一个自定义的插件MyPlugin。我希望自己app里的页面可以plus.MyPlugin.XXX调用,但是不希望被第三方页面调用(我们知道第三方页面只要有对应插件的js也能plus.MyPlugin.XXX来调用)。
我该如何阻止第三方页面使用,难道我要在原生端(插件的java类)加入身份认证逻辑,然后每次调用都传身份认证参数?

总结:
这样的场景是很常见的,有没有办法避免第三方H5页面直接用plus调用5+接口?如何保证5+ app里数据和能力的安全性?DCloud官方和其他开发者是否有考虑过这个问题,有没有什么解决方案?

2020-01-17 09:49 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

  1. 这是选择的问题,plus.storage不适合存放安全数据,主要作用是不同页面间可以方便共享数据。如果希望数据安全存储,建议单独加密保存到文件中
  2. 插件的安全问题应该由插件自身提供安全机制,比如通过传入参数key来校验
  3. 避免第三方页面使用5+ API的方法请参考:https://ask.dcloud.net.cn/question/85390
  • 小权 (作者)

    感谢回复。我想表达的就是外部页面调用plus会对app本身造成破坏,有解决方案就好。

    2020-01-17 12:19

要回复问题请先登录注册