uni-app 云数据库联表查询 read权限限制失效 可以任意读取

uni-app 云数据库联表查询 read权限限制失效 可以任意读取

操作步骤:

"read": "auth.uid != null && doc.user_id == auth.uid",
},
db.collection('a,uni-id-users').doc(id).field('user_id').get()
100% 触发  

预期结果:

因为 a表 做 read 限制  ,理应智能读取本 user_id下的数据  

实际结果:

实际情况 是
如果 只查询 a表 那么read限制  则正常
如果进行 链表查询  a,uni-id-users
那么read失效

bug描述:

多表查询 read的限制 会失效
比如
**a表   user_id字段 关联了 uni-id-users表**
代码 db.collection('a').doc(id).field('user_id').get()  //那么read权限就会生效  提示 权限校验未通过
如果  db.collection('a,uni-id-users').doc(id).field('user_id').get()
进行连表查询 那么read的限制就会失效  用户可以查询任何 a 表数据  

{
"bsonType": "object",
"required": ["user_id"],
"permission": {
"read": "auth.uid != null && doc.user_id == auth.uid",
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"user_id": {
"bsonType": "string",
"description": "操作者ID, 参考<code>uni-id-users</code> 表",
"foreignKey": "uni-id-users._id",
"forceDefaultValue": {
"$env": "uid"
},
}
}

更多关于uni-app 云数据库联表查询 read权限限制失效 可以任意读取的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

经过此时 的确是bug 因为使用 .doc(‘616bf42a817bc50001ab476d’) 的原因 如果没有这一句 而是使用 wher("_id==‘616bf42a817bc50001ab476d’") 则read权限生效 如果使用doc() 则read权限失效 所以这bug 挺严重的啊

更多关于uni-app 云数据库联表查询 read权限限制失效 可以任意读取的实战教程也可以访问 https://www.itying.com/category-93-b0.html


感谢反馈已加分,此问题线上版本已修复,重新上传schema可以触发云端逻辑更新。本地调试插件会在下个版本HBuilderX发布时修复

回到顶部