如何将每个用户的条目限制为aws javascript dynamodb?

如何将每个用户的条目限制为aws javascript dynamodb?,javascript,amazon-web-services,amazon-dynamodb,Javascript,Amazon Web Services,Amazon Dynamodb,使用amazon刚刚发布的javascript web sdk,如何防止用户(即使在联合身份验证之后)滥用对数据库的访问 例如,如何限制他们可以为字段提交的字符串的长度 另外,对于一个包含多行的表,如何限制它们提交的条目数?或者在s3上,限制他们可以提交的文件数量或大小 我可以想象如何在node.js实现中控制这一点,但似乎有人可以在客户端编写自己的脚本来规避规则 编辑:为了澄清我们正在讨论的SDK:我建议对这个问题唯一好的答案是非常直接的,尽管您可能不喜欢它:“不要让他们直接访问资源”,然后是

使用amazon刚刚发布的javascript web sdk,如何防止用户(即使在联合身份验证之后)滥用对数据库的访问

例如,如何限制他们可以为字段提交的字符串的长度

另外,对于一个包含多行的表,如何限制它们提交的条目数?或者在s3上,限制他们可以提交的文件数量或大小

我可以想象如何在node.js实现中控制这一点,但似乎有人可以在客户端编写自己的脚本来规避规则


编辑:为了澄清我们正在讨论的SDK:

我建议对这个问题唯一好的答案是非常直接的,尽管您可能不喜欢它:“不要让他们直接访问资源”,然后是“不信任任何人”您服务的凭据只属于完全受信任的实体,无论这些凭据理论上授权什么,所以我不确定您要保护谁

您可以通过向应用程序服务器验证他们的请求并将请求发送到数据库或其他底层系统来限制他们可以提交的字段的大小,具体取决于请求是否有效。在堆栈中的这一点上正确地实现,无论客户端发生了什么,都不可能违反这些限制,相反,任何假定客户端行为正确、可预测、合理且符合预期的实现都是非常幼稚的实现


控制这些事情是应用服务器的工作,通过API接收客户机请求——您为应用程序设计用于和客户机交互的API——验证它们,并向底层系统发送调用以满足它认为合法的请求

您可以使用IAM,并为每个用户提供仅访问其记录的特定权限


例如,您可以使用DynamoDB细粒度访问控制(),当与web identity一起工作时,可以提供对以其用户id开头的记录的访问。请在此处阅读更多信息:

这似乎违背了他们发布的客户端API的目的。我想相信他们计划了一种控制db插入大小/计数的方法,这是一种降低滥用效率的方法。我假设Javascript SDK是针对服务器端的节点的。他们刚刚发布的是针对客户端的。他们的节点版本已经存在了一段时间,但假设您有一个应用程序,我注册了它。现在你只允许我访问我的记录,但我是恶意的。现在,我把10igs无用的垃圾倒进数据库条目,你付钱。如何防止这种情况发生?谢谢你,伙计。如果有人想要恶意,64GB是非常高的。我认为能够限制用户以最大文件大小更新最大行数会很有帮助。例如:100行,100kb大小(或任何对应用程序有意义的东西)自动更正正在接管。。。让我们再试一次:64千字节不是千兆字节。。。