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发布时修复

