旧版本的项目没有经过数据加密处理,新版本的加了,
为了数据安全,如何实现“旧版本无法发起增删查改数据请求”?
- 发布:2022-10-09 15:37
- 更新:2022-10-09 17:51
- 阅读:228
朕遵旨 (作者)
目前用的方案是用自定义token,思路如下:
按文档方法在token中加入字段version
加入位置是uniCloud/cloudfunctions/common/uni-config-center/uni-id/custom-token.js
module.exports = async (tokenObj) => {
// #ifdef APP-PLUS
tokenObj.version = plus.runtime.version //当前版本0.612
#else
tokenObj.version ='H5OrMP'
// #endif
return tokenObj
}
DBSchema:
"permission": {
"read": "auth.version>0.611 ||auth.version=='H5OrMP' ", //0.611为需要拒绝的最高级老版本
}
但会显示PERMISSION_ERROR 权限校验未通过,不知道是不是custom-token.js的文件创建位置不对,还是token加了version字段后云端不能通过auth.version获取到
朕遵旨 (作者)
是云函数加密,是使用clientDB,旧版本项目使用uniCloud.database().collection().xxx发起请求,在云函数的哪个文件添加判断逻辑?
2022-10-09 16:45
DCloud_heavensoft
回复 朕遵旨: 在clientDB的action云函数
2022-10-09 16:48
朕遵旨 (作者)
回复 DCloud_heavensoft: 可是旧版本没有通过action,而是通过uniCloud.database().collection().xxx的方法发送请求呀,这样不能拒绝低版本的请求诶
2022-10-09 16:54
DCloud_heavensoft
回复 朕遵旨: 不。在schema的权限控制里,可以配置必须挂action,否则禁止访问,详见:https://uniapp.dcloud.net.cn/uniCloud/schema.html#%E6%9D%83%E9%99%90%E8%A7%84%E5%88%99%E7%9A%84%E5%8F%98%E9%87%8F%E5%92%8C%E8%BF%90%E7%AE%97%E7%AC%A6
2022-10-09 21:11
朕遵旨 (作者)
回复 DCloud_heavensoft: 感谢,按照这个方法已经成功解决
2022-10-10 15:11