如何安全地将 Backbone.js 应用程序连接到数据库?

Posted

技术标签:

【中文标题】如何安全地将 Backbone.js 应用程序连接到数据库?【英文标题】:How do I securely connect a Backbone.js app to a database? 【发布时间】:2012-09-14 14:16:08 【问题描述】:

我开始计划一个网络应用程序,Backbone.js 将非常适合客户端。我一直在计划使用 node 作为后端,但暂时是开放的。

我需要一种方法来保护前端应用程序与数据库的连接。我有discussions with others on Quora,但我认为思考过程过于抽象于核心问题。

我希望通过 RESTful 端点访问数据,但我需要确保只有我的应用可以与 API 对话。我将完全控制应用程序的前端和后端。有可能围绕数据库构建其他应用程序(在一两年内),但它们将由我开发(即不是公共 API),并且这些应用程序可能会使用单独的 OAuth 端点。

应用上的一些注释(可能有用也可能没用):

该应用计划以 SaaS 模式提供,公司订阅并允许多个用户。 每家公司的数据都必须是安全的,并且只有该公司的成员才能访问。 所有流量(前端和应用到 API)都将通过 SSL 发送。

任何关于最佳方式的建议将不胜感激。

【问题讨论】:

【参考方案1】:

我们的设置与您完全相同 - SaaS 模型、多个应用程序(移动、网络等),当我点击您的链接时,Miguel 拥有我们使用的完全相同的解决方案。

带有时间戳并在身份验证时发送给客户端的令牌。我们将该哈希令牌存储在用户模型中,然后我们验证该令牌的每个后续请求。

您可以使用 BaseModel 扩展 Backbone.Model,通过覆盖 Backbone.Sync 将令牌附加到每个服务器请求

请参阅here,了解他们如何扩展基本视图,您可以将相同的内容应用于基本模型。

【讨论】:

我认为这将是最好的解决方案,但我想我会寻求第二意见。你说它在实践中有效,所以我想我会坚持下去,谢谢。

以上是关于如何安全地将 Backbone.js 应用程序连接到数据库?的主要内容,如果未能解决你的问题,请参考以下文章

前端框架 | Backbone.js在大型单页面应用中的应用实践

在 Apache 或 IIS 中托管时将 Backbone.js 与 CouchDB 连接

如何使用 websocket 安全地将我的 cli 应用程序连接到网站

如何进行backbone.js UI测试

如何使用 Backbone.Js 创建嵌套模型

如何在backbone.js 中进行轮询?