传统上,在我过去编写的 Xamarin 应用程序中,有一个 WebService,它使用 EF 或仅存储的 Procs 创建调用来与关系数据库通信。在 Cosmos 中,我不再需要数据库连接软件的额外服务层吗?
在网络上公开暴露数据库总是有风险的,如果您的数据库被公开暴露,那么保证数据层的安全性就有点困难。
如果有人使用中间人攻击或任何其他攻击来窃取您的 dB 凭证,会发生什么?他将有权访问您的所有数据(甚至是您的应用程序对用户隐藏的数据),并且可以向 dB 帐户授予任何不良操作。因此,如果精心设计,在应用程序和数据层之间拥有一个应用程序服务器将为您的应用程序添加一个额外的安全层。
另一个有趣的点是,Web 服务可以实现不同的机制来控制用户可以对数据执行哪些操作 - 例如使用 RBAC,如果这种控制在源代码可以逆向的移动应用程序中实现经过精心设计,攻击者可以更轻松地绕过您的控制并使用您的应用程序做任何他想做的事情。
使用 Web 服务可以帮助您更好地控制基础架构以及您希望其增长的方式,例如,扩展 Web 服务器比扩展数据库服务器更容易且成本更低。