当用户令牌通过OAuth (外部提供者)授权给我们时,我将得到成千上万的用户令牌。
我试图找出哪些最佳实践可以安全地将用户的令牌加密到数据库中。
我正在考虑使用using (PHP中的Halite)加密令牌,然后保存到MySQL中。加密密钥存储在.env文件中。但是,如果网络服务器遭到黑客攻击,他们可以管理对.env的访问怎么办?
第二个选项是使用Vault (HashiCorp),它安装在单独的服务器上。web服务器必须使用API访问Vault。
你觉得哪个更安全?
发布于 2017-11-01 08:31:10
有几种方法可以做到这一点,这取决于read服务器是否真的需要对oauth令牌的读/写访问。
我已经用了一段时间了,我想这是最好的选择。您可以使用类似于接近 auth后端(vault auth-enable approle)的东西来让您的服务器根据不同的政策编写令牌(因此它们仅限于编写这些令牌)。
因为not服务器只能写,所以您需要一些可以读取oauth数据的东西,我建议您在这里有一个队列工具,它的工作人员可以读取和处理您需要做的任何事情,最好不是在not服务器上(这样可以在不同的机器上分离读/写访问)。员工可以使用读/写或只读应用程序角色。
您使用哪个秘密后端来存储数据(consul/file/DB)并不重要。选择您满意的内容(因为它具有弹性,并且不依赖于mysql或其他DB复制),但是无论您选择什么,保险库都会确保数据在写入之前是加密的。
如果well服务器被黑客入侵,那么它就无法读取令牌,因此数据应该是相当安全的(只要您保护机器/保险库/工作人员通信)。
https://security.stackexchange.com/questions/170037
复制相似问题