【发布时间】:2020-09-03 06:07:04
【问题描述】:
如何保护我的 graphql 路由不被未知资源查询?
我目前有以下选择:
export const corsOptions = {
origin: ["https://my-website.com", "https://api.my-website.com"],
credentials: true,
}
expressApp.use(cors(corsOptions))
apolloServer.applyMiddleware({expressApp, cors: corsOptions})
我已将其部署在 AWS/Fargate 上。
问题是我仍然可以从我的计算机上在 Postman 中查询。
注意,我还将有一个 React-native 应用程序来连接到此 API。
什么是适合我的 CORS 选项?
【问题讨论】:
-
那么你应该首先阅读 CORS 的真正含义。然后你就会明白为什么 POSTMAN 总是能够查询你的公共端点。
-
有什么方法可以使那个端点成为私有的吗?
-
CORS 只是您浏览器中的自愿限制,旨在提高用户的安全性。如果包含 curl 的系统想要获取资源,它可以。您需要向端点添加身份验证 - 可能类似于 JWT?
-
是的,我使用 JWT 进行突变,但不用于查询(因为我希望访问者在不创建帐户的情况下浏览某些内容)。似乎我要么为所有人添加身份验证,要么使用随机生成的端点。
标签: amazon-web-services express graphql apollo