API或将逻辑放在应用程序中?

时间:2015-06-30 20:09:09

标签: android api security amazon-web-services

我正忙着为Android构建应用程序。当Android用户正确接收时,我想扩展到iOS。

但是,在我们到达那里之前,我首先要做出正确的选择。所以我的问题是,该怎么做?:

  1. 在应用程序中编写所有逻辑并使用Cognito(https://blogs.aws.amazon.com/security/post/Tx3LP54JOGBE0AY/Building-an-App-using-Amazon-Cognito-and-an-OpenID-Connect-Identity-Provider)访问DynamoDB中的数据
  2. 或让我的应用程序连接我自己的处理验证规则的API,然后我将其连接到DynamoDB数据库(不知道或API - > Cognito - > DynamoDB是一个更好的解决方案,没有真正使用过它还是......)。
  3. 现在我们都知道黑客建立绕过某些验证规则的方法的问题(据我所知,最常见的是通过反编译应用程序)。我真的想避免这种情况!

    那么Android开发人员使用的是什么?我知道答案似乎很明显。但我之所以这么说是因为我想避免使用我的基础设施,我需要更新等等。但是为了能够注册用户,而不需要第三方支持OpenID,如twitter,facebook或Google,AND保护我的验证规则,似乎我别无选择。或者我呢?

1 个答案:

答案 0 :(得分:1)

如果您定位到多个平台,通常最好在应用外部的api中执行大部分业务逻辑。它减少了代码重复,如果在api级别进行验证,则会限制恶意用户绕过验证规则的能力。

话虽如此,运行自己的api并不一定需要运行自己的基础架构。可以提供帮助的两个AWS Web服务是Amazon API GatewayAWS Lambda。注册用户可以使用Amazon Cognito Your User Pools

完成