乐于分享
好东西不私藏

小程序 wx.cloud 操作文档型数据库的漏洞挖掘点

本文最后更新于2026-03-11,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

小程序 wx.cloud 操作文档型数据库的漏洞挖掘点

字数 474,阅读大约需 3 分钟

前言

对上一篇文章的补充 原创 | 小程序中云函数越权的探索

今天来说 cloudbase 中的文档型数据库的权限问题。

文档型数据库权限说明

腾讯云 cloudbase 中位置:

78a3ea8036d9e7dda55d48ebb2c04391.png

官方文档:https://docs.cloudbase.net/database/data-permission

a3117a3bdefebfd8d15c1556378cff93.png

文档型数据库操作演示

我在写小程序的时候,发现大模型会在云函数和小程序 js 文件里使用

const db = wx.cloud.database();// 先获取总数const countResult = await db.collection('articles').count();const total = countResult.total;// 获取分页数据const result = await db.collection('articles').orderBy('createTime', 'desc').skip((page - 1) * pageSize).limit(pageSize).get();const newArticles = result.data;

云函数和小程序都是调用的 wx cloud 的 sdk。这两种都执行成了。那小程序可以直接db.collection('articles')直接配置查询哪个数据表。这里好像并没有限制不能查看其他数据库哦。

在 console 中调用

84962631212994c355fd91d92d932f35.png
const db = wx.cloud.database();let countResult = await db.collection('articles').count();let total = countResult.total;console.log('总条数:', total);

我的云文档数据库里的表有:

  • • articles
  • • articles_tag
  • • interview_questions
  • • interview_tag

如果数据表不存在:

ebbf8bae834b5625025c4a710f723efc.png

读取 articles_tag

let countResult = await db.collection('articles_tag').count();let total = countResult.total;console.log('总条数:', total);

无权限[ADMINONLY]

3ed7b7de11790f25e1cc50363ae3b611.png

提示无权限

39ea5bec2a94a30c715447b80f3226e0.png

读取全部数据,不可修改数据[ADMINWRITE]

b6d296e971eb6e891d18da8d837962d4.png

读取和修改本人数据[PRIVATE]

0f78a87d7ad972253a2ec310d5efea7d.png

小结

可以看到,如果没有配置无权限[ADMINONLY],那么我们能通过 wx.cloud.database 直接对数据库进行查看,如果给了满权限,还能增删改查。

防御

当小程序需要对云文档数据库进行操作时,可以通过云函数进行操作。即时数据库配置无权限[ADMINONLY],云函数依然可以访问,进行完整的增删改查。

e894e2bc7480497e8c020a03b8986e33.png

也因此,通过云函数操作时,就要考虑上一篇文章对云函数的权限限制。

通过云函数访问时:

2c746ecfb4ba3b5289a3bbac1a7e41f5.png

小程序直接 db.collection 访问时

92deeecf0b414c8d34c1493e92933ad2.png
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 小程序 wx.cloud 操作文档型数据库的漏洞挖掘点

猜你喜欢

  • 暂无文章

评论 抢沙发

3 + 3 =