Users
, Orders
和 Products
。要访问你的
user
数据和你的orders
,你需要进行身份验证(使用JWT令牌)。这个检查是在解析器中完成的。然而,
Products
是公开的。你可以在未登录的情况下查看产品。当然,
User
有Orders
,而Order
有Products
。如果前端有人执行此查询,会怎样呢?
query IAmEvil {
products {
orders {
users {
id
name
email
}
}
}
}
这个人没有经过身份验证,就可以访问“用户”数据。我该怎么防止这种情况发生?
我是否需要为所有嵌套查询的解析器添加规则?
相关文档:
https://www.apollographql.com/docs/guides/security.html https://www.howtographql.com/advanced/4-security/ https://blog.apollographql.com/securing-your-graphql-api-from-malicious-queries-16130a324a6b https://www.prisma.io/forum/t/graphql-security-protect-nested-data/4519