adr*_*obo 9 security amazon-web-services amazon-cognito angular
从AWS文档(指定用户池应用程序设置):
开发人员有责任保护任何应用客户端ID或机密,以便只有经过授权的客户端应用才能调用这些未经身份验证的API.
那么在安全条件下是否有任何架构可以进行身份验证(不会在静态Web中清除客户端ID).
AWS示例将客户端ID清除,因此不符合文档建议.此外,任何攻击者都可以使用静态Web客户端ID对Cognito未授权的api执行暴力攻击.有什么方法可以避免这种情况吗?
当您同时使用 App Client ID 和 Secret(通常在移动开发中)时,他们的建议适用。
创建应用程序时,您可以选择为该应用程序创建密钥。如果为应用程序创建了机密,则必须提供机密才能使用该应用程序。用 JavaScript 编写的基于浏览器的应用程序可能不需要带有机密的应用程序。
当您在 Web 上使用 Cognito 时,您不需要生成 Secret(在您的用户池中创建应用程序时取消选中该框)。这确实在客户端上以明文形式保留了 App Client Id,但这种情况没有比将登录页面暴露在开放互联网上更多的风险:无论如何,攻击者都可以尝试暴力破解您的登录。
我确信亚马逊在这种情况下所做的(无论如何人们应该在自定义登录实现的情况下做的事情)是为了抵御限制请求、将 IP 列入黑名单等,这从本质上将攻击者的速度减慢到不可行的程度或者不值得进行蛮力攻击。
简而言之,您无需担心将 App Client Id 嵌入您的 Web 前端代码中。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |