【问题标题】:Xamarin/Cosmos DB Design question Service intermediary or not? (Design Question)Xamarin/Cosmos DB 设计问题 服务中介与否? (设计问题)
【发布时间】:2020-04-14 14:32:56
【问题描述】:

传统上,在我过去编写的 Xamarin 应用程序中,有一个 WebService,它使用 EF 创建调用或仅存储 Procs 以与关系数据库通信。在 Cosmos 的美丽新世界中,我是否因为提供数据库连接软件的额外服务层而感到解脱?

【问题讨论】:

    标签: ios api xamarin azure-cosmosdb webapi


    【解决方案1】:

    在 Web 上公开数据库总是有风险的,如果您的数据库公开,那么保证数据层的安全性会有点挑战。

    如果有人使用中间人攻击或任何其他攻击来窃取您的 dB 凭据,会发生什么情况?他将访问您的所有数据(甚至是您的应用程序对您的用户隐藏的数据),并且可以对 dB 帐户进行任何不需要的操作。因此,如果精心设计,在应用程序和数据层之间有一个应用程序服务器将为您的应用程序添加一个额外的安全层。

    另一个有趣的点是,Web 服务可以实现不同的机制来控制允许用户对您的数据执行的操作 - 例如,使用 RBAC,如果在源代码可以执行的移动应用程序中实现这种控制如果进行反向工程,攻击者可以更容易地绕过您的控件并对您的应用程序做任何他想做的事情。

    使用 Web 服务可帮助您更好地控制基础架构以及您希望它如何增长,例如,扩展 Web 服务器比扩展数据库服务器更容易且成本更低。

    【讨论】:

    • 意识到 Cosmos 具有针对移动应用程序的离线/在线重新同步功能。如果你把服务放在如何启用该功能?
    • 移动应用仅支持服务器端的 Azure SQL。为此,您在哪里找到有关 Cosmos DB 的信息?
    • @MarkWardell,很难在同步服务器和应用程序之间开发中间层,在这种情况下,您可以使用 cosmosdb 提供的 api,但是有您的 dB 凭据的风险如果你支持离线模式,我至少会在第一次运行时使用 Azure Key Vault 来获取数据库凭据。
    • @ravitella 我认为 Mark 正在考虑类似于 github.com/Azure/azure-cosmos-dotnet-v2/tree/master/samples/…
    • @ravi 泰拉。我开始认为我们沟通不畅。我只是在讨论从 Xamarin 世界中弃用的一长串项目。除了之前创建的旧版之外,不再支持使用 SQLServer 的 EZTables。 AppCenter 正在推动其数据应用程序。现在它已经消失了。但是 Cosmos,它也不支持 EZTables,我认为它为移动开发人员提供了离线模式。这似乎只是一个请求的功能。我希望 Cosmos 确实支持离线模式。
    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多