将HTML5应用程序连接到服务器上的数据库*安全*

Connecting the HTML5 app to a database on a server *Safely*

本文关键字:数据库 安全 服务器 HTML5 应用程序 连接      更新时间:2023-09-26

我正在尝试将HTML5移动phonegap应用程序安全地连接到数据库(MongoDB)。该应用程序将出现在应用商店中,没有人能看到代码。我对此有几个问题。据我所知,有两种方法可以做到这一点,一种是使用RESTful服务,另一种是用数据库驱动程序(我对这种方法有问题,所以使用了HTTP请求方法)。以下是我的问题,

当我使用RESTful服务连接到数据库时,我必须包含HTTP查询,其中包含API键。我的问题是:这样使用它安全吗?我计划在数据库中存储一些敏感信息,但计划对其进行加密。但我不希望任何人看到我的API密钥,因为如果看到API密钥,则很容易访问数据库中的信息。API KEY被硬编码在其中一个javascript文件中。

有没有一种安全的方法可以在javascript中使用REST API密钥?

最好的方法是在应用程序(客户端)和数据库(资源服务器)之间放置一个oAuth 2.0层。这里的";资源所有者";是最终用户。

您可以使用";隐含的""资源所有者密码凭据";或";客户端凭据";。请阅读";访问令牌";以及";刷新令牌";而且

抽象协议流(从此处复制)

 +--------+                               +---------------+
 |        |--(A)- Authorization Request ->|   Resource    |
 |        |                               |     Owner     |
 |        |<-(B)-- Authorization Grant ---|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(C)-- Authorization Grant -->| Authorization |
 | Client |                               |     Server    |
 |        |<-(D)----- Access Token -------|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(E)----- Access Token ------>|    Resource   |
 |        |                               |     Server    |
 |        |<-(F)--- Protected Resource ---|               |
 +--------+                               +---------------+