我正在尝试为Firebase编写完美的数据库规则,以阻止人们查看彼此的数据。每个用户都有一个保存在数据库中的API密钥,如下所示:
-users:
-user1:
-APIKEY: "123asdasasd"
我允许用户只设置他们的API密钥,但他们甚至无法看到自己保存的API密钥。这是我的安全规则:
"users": {
"$userID": {
".write": "auth != null && auth.uid === $userID",
".read": "auth != null && auth.token.admin === true "
}
},
因此,即使有人冒充其他用户,他们也无法访问他们的数据,只有他们可以更改数据,这对我的应用来说不是安全问题。
由于我的应用需要超级安全,我还想将加密技术添加到数据库。我希望客户端在保存数据库之前加密API密钥,只有我的服务器才知道解密这些API密钥的密钥。因此,存储在数据库中的密钥将被加密。
有权访问我的整个数据库的黑客是否能够在不知道解密密钥的情况下解密人们的API密钥?
node.js中有哪些加密方法?如果服务器知道私钥而没有其他人知道私钥,那么它只是安全吗?
答案 0 :(得分:1)
您正在使用术语"键"对于一些不同的事情,遗憾的是很难回答。我会尝试一下,因为要考虑的主要事项是存储用于加密/解密数据的密钥。
当然,这两种方法都容易受到暴力攻击。因此,如果您的加密不够强大,那么加密数据的重点就没那么了。
建议加密特定库是Stack Overflow btw的偏离主题,但一些针对性很强的Google搜索应该会为你提供很多好的候选者。