我在我的一个项目中使用AWS Cognito。我为用户提供了几个自定义字段。如何确保用户不会更新他不应该更新的字段,例如"自定义:ACCOUNT_TYPE"或者"自定义:状态"?因为代码是从客户端调用的,所以可以对其进行操作。
解决此问题的一种方法是调用应用程序后端,然后调用数据并调用Cognito,但我不喜欢这种方法。后端不应该参与这个流程。
由于客户端SDK提供了更新所有属性的可能性,我想知道我不能创建在执行端点之前调用的Lambda函数并验证数据吗?还是有其他解决方案吗?
如果我什么都不做,那么将会出现一个很大的安全问题,即用户可以更新受限制的字段,这可能会授予他额外的权限。
答案 0 :(得分:2)
在控制台上并使用CLI,您可以设置每个已配置的应用程序客户端可读写的属性。您可以为您的用户设置一个客户端,该客户端不允许写入自定义:account_type和custom:status等属性。但是,您可以从后端为您的用户更新这些字段。
如果您想拥有自定义逻辑,您可以让应用程序客户端能够读取这些字段。