Amazon web services AWS Amplify-配置的安全性

Amazon web services AWS Amplify-配置的安全性,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,在下面的amplify示例中,我们必须提供一些配置,以允许Javascript客户端连接到Cognito。我的假设是,在客户机上以明文形式保存这些数据是可以的 然而,在一些文章中,有人认为情况并非如此,我在AWS官方网站和amplify网站上都没有发现这方面的最佳实践 如果只进行JS(即不涉及后端)身份验证,那么在客户端处理此配置的最佳方法是什么 从“aws放大”导入放大; 放大({ 认证:{ //必需-Amazon Cognito标识池ID identityPoolId:'XX-XXXX-X

在下面的amplify示例中,我们必须提供一些配置,以允许Javascript客户端连接到Cognito。我的假设是,在客户机上以明文形式保存这些数据是可以的

然而,在一些文章中,有人认为情况并非如此,我在AWS官方网站和amplify网站上都没有发现这方面的最佳实践

如果只进行JS(即不涉及后端)身份验证,那么在客户端处理此配置的最佳方法是什么

从“aws放大”导入放大;
放大({
认证:{
//必需-Amazon Cognito标识池ID
identityPoolId:'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',
//必需-亚马逊Cognito地区
地区:'XX-XXXX-X',
//可选-Amazon Cognito用户池ID
userPoolId:'XX-XXXX-X_abcd1234',
//可选-Amazon Cognito Web客户端ID
UserPoolWebClient:'XX-XXXX-X_abcd1234',
}

});在客户端配置中使用此选项完全可以。事实上,这是必要的

ID中没有秘密信息,它们只是引用。公开API端点没有什么不同,必须这样做

您的客户机必须连接到您的Cognoto实例。通过在运行时将属性从在线商店中拉出,您可能会想出一些复杂的方法来隐藏属性,但您的客户机最终仍然会公开属性。加上你的用户在那一点上不会被认证,所以你甚至不能保护在线商店

此外,您的属性实际上不是可变的。它只需要公开属性的一个实例(例如,开发人员发布属性,或者只是告诉某人),它们就会不可逆转地丢失。试图隐藏他们是一场失败的游戏

我建议创建一个后端服务只是为了掩盖客户机与Cognito的交互,这是一种反模式


AWS提供了许多现成的安全功能,包括在不正确使用密码时锁定帐户,以及阻止来自IP的呼叫,这些呼叫在短时间内发出过多呼叫。我相信AWS服务也支持DDOS保护(请参阅CloudFront)。如果有人拿走了你的财产并试图通过帐户暴力或DDOS攻击你,他们将很难实现任何目标。

尽管理论上第三方可以使用你的应用程序的用户池来存储该第三方应用程序的用户,但有什么方法可以防止吗?