AWS Cognito 和 CORS 安全问题

2024-02-02

我有一个 Web 客户端通过 AWS API Gateway 向 AWS Lambda 发出请求。我使用 AWS Cognito 和 Auth0 来对用户进行身份验证。

我的问题与来自 AWS API Gateway 端点的 CORS 响应标头相关,特别是设置为任何“' * '”的 Access-Control-Allow-Origin 响应标头。本文指出了使用任何“' * '”参数的风险,即“黑客可以在我们的后端选择我们的网站来请求任何方法”:(CORS 安全链接 https://www.pivotpointsecurity.com/blog/cross-origin-resource-sharing-security/).

虽然 Cognito 的身份验证可以证明发出请求的最终用户就是他所说的人,但 Cognito 的身份验证不一定证明代表用户发出请求的网站是mywebsite.com而不是攻击者网站.

Cognito 是否保证请求来自 mywebsite.com?

是否有一种安全的方法来实现任何“' * '” Access-Control-Allow-Origin 响应标头?


Cognito 是否保证请求来自 mywebsite.com?

不会。Cognito 不知道您的域。它所关心的是用户身份验证/管理。

是否有一种安全的方法来实现任何“' * '” Access-Control-Allow-Origin 响应标头?

嗯,是的,也不是。正如您在帖子中所说,Cognito 将对用户进行身份验证,这意味着Access-Control-Allow-Origin: *设置后,任何域都可以发出跨源请求,但如果它们无法提供有效的身份验证令牌,则会收到 401 错误。

如果您想限制哪些域可以访问,那么您不能使用*. *是通配符,因此允许任何值。因此,如果您只想让 mywebsite.com 能够发出 CORS 请求,请替换* with mywebsite.com。这使得仅允许来自该域的请求。来自 Attacker.com 的请求现在将失败,因为它们没有正确的标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Cognito 和 CORS 安全问题 的相关文章

随机推荐