向 ArangoDB 发送请求的正确/安全方式是啥?

Posted

技术标签:

【中文标题】向 ArangoDB 发送请求的正确/安全方式是啥?【英文标题】:What is the correct/sercure way to send requests to ArangoDB?向 ArangoDB 发送请求的正确/安全方式是什么? 【发布时间】:2021-10-21 02:12:28 【问题描述】:

这是我第一次使用数据库,我不确定我应该如何处理这个问题。 我想创建一个网络应用程序,这个网络应用程序应该从 ArangoDB 请求信息。此网络应用程序将包含敏感的用户信息等。

我在前端编写了一些 JS 代码,但很快意识到为了从 Arango API 请求身份验证 JWT 令牌,我将 root 用户和 root 密码暴露给任何审核代码的人。

await getAuthenticationToken('username here', 'password here');

第二个重要的观察是当将 JWT 令牌保存在 cookie 中时,可以通过编程方式访问该 cookie,这可能是一个严重的安全问题。

我了解到我需要将 JWT 令牌字符串存储在 http cookie 中,这样就无法访问它。

此 API 通信代码是否属于后端,或者我是否可以拥有例如通过前端 JS 访问的 php 脚本,它只处理凭据/身份验证令牌/请求?

有人建议向数据库中添加多个用户。我觉得允许随机用户直接但有限的权限访问数据库是一个坏主意,即使这些权限的细粒度控制是可能的。当然,为数据库创建用户只是员工的一项功能,而不是随机的应用程序用户。 -- 还是我在这里遗漏了什么?

【问题讨论】:

一种方法是设置包含 API 密钥的 Foxx 配置设置,它们可以默认为“12345”之类的值,但是当您打开配置设置时,您可以输入 120 个随机字符串,如果您想要那么安全。这样,每个 Foxx 服务的安装都可以拥有自己的 API 密钥。您还可以实现提供不同访问级别的多个 API 密钥,或使用这些密钥创建/管理存储在集合中的内部用户,并使用加密密码。 @DavidThomas - 你应该把它作为答案,而不是评论。 @kerry 好的,谢谢 【参考方案1】:

一种方法是设置包含 API 密钥的 Foxx 配置设置,它们可以默认为 12345 之类的值,但是当您打开配置设置时,如果您想要那么安全,您可以输入 120 个随机字符串.

这样,每个 Foxx 服务的安装都可以拥有自己的 API 密钥。

您还可以实现提供不同访问级别的多个 API 密钥,或使用这些密钥创建/管理存储在集合中的内部用户,并使用加密密码。

【讨论】:

以上是关于向 ArangoDB 发送请求的正确/安全方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

UART蓝牙通信问题 向UART发送数据的正确格式是啥(整数值)

如果没有可用的临时队列,实现请求/回复模式的最佳方式是啥?

发送需要 SSL/TLS 的请求的正确 HTTP 响应是啥

有没有一种安全的方式通过电子邮件以明文形式向用户发送密码?

在请求的标头中发送令牌是不是安全?

HTTP协议中请求方法Get和Post的区别是啥?