如何在中继中保护查询节点(id : ID!)



我是 Relay 和 GraphQL 的新手,无法找到答案。如果我必须为实现 Node 接口的每个对象提供唯一的 id(根据中继规范),那么如何保护数据不泄漏。是什么阻止了拥有此类ID的人获取他应该无法获取的数据。

客户端 : React + 中继
服务器 : MongoDB + Prisma + GraphQL-Yoga

让我们假设我们有

type PrivateStuff implements Node {
id : ID!
secretData : String!
}

如果有人暴力破解此 ID 或从用户那里窃取它怎么办

query{
node(id : "PrivateStuffId") {
id
secretData
}
}

有什么方法可以保护这些数据吗?

更新:可以通过在将id提供给客户端之前对其进行编码来提高安全性,并根据请求进行解码。但如果编码的ID泄露,它将无法保护数据

更新:正文中带有 id 的 JWT 可能是一种选择。但是很难确定令牌应该存在多长时间。

意外找到了本教程。长话短说,客户端在标头中提供身份验证信息,服务器使用中间件来处理此数据。可以通过context.request访问请求标头。

相关内容

最新更新