我正在尝试将 HTML5 手机应用程序安全连接到数据库 (MongoDB)。该应用程序将出现在应用程序商店中,没有人可以看到代码。我对此有一些疑问。据我所知,有两种方法可以做到这一点,一种是使用 RESTful 服务,另一种是使用数据库驱动程序(我在使用此方法时遇到问题,因此使用 HTTP 请求方法)。这是我的问题,
当我使用 RESTful 服务连接到数据库时,我必须包含 HTTP 查询其中包含 API key 。我的问题:这样使用它安全吗?我计划在数据库上存储一些敏感信息,但计划对其进行加密。但我不希望任何人看到我的 API key ,因为如果有人看到 API key ,那么就很容易访问数据库上的信息。 API key 硬编码在 JavaScript 文件之一中。
是否有一种在 JavaScript 中使用 REST API key 的安全方法?
最佳答案
最好的方法是输入 oAuth 2.0应用程序 ( Client ) 和数据库 ( Resource Server ) 之间的层。这里的“资源所有者”是最终用户。
您可以使用“隐式”、“资源所有者密码凭据”或“客户端凭据”。请阅读“Access Tokens ”和“Refresh Tokens ”。
抽象协议(protocol)流(复制自 here )
+--------+ +---------------+
| |--(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 ---| |
+--------+ +---------------+
关于javascript - *安全地将 HTML5 应用程序连接到服务器上的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599905/