我有一个数据库,用于存储用于访问其他应用程序中数据的访问令牌。
例如像这样:
ID | user_id | access_token
1 | 2 | ashftoken...
2 | 9 | ashftoken...
3 | 3 | ashftoken...
4 | 56 | ashftoken...
当用户登录时,我使用包含在 api 调用中的访问令牌来访问 3rd 方服务。
有什么问题?
问题是令牌以纯文本形式存储在数据库中,默认情况下是不安全的。
但实际上没有其他方法可以存储它们,因为我需要保存在那里的访问令牌,或者换句话说,我无法对它们进行哈希处理。
我也知道,安全这个词并不意味着某些东西是牢不可破的,而是指某些东西被破坏的可能性可高可低,因此安全性可高可低。
现在我想知道,是否有任何方法可以保护这些令牌。例如,可能首先加密令牌,然后将它们存储在数据库中,并在检索时使用存储在 .env
应用程序文件中的密钥解密它们。
或者可能将它们存储在一个完全独立的数据库中,可以使用单独的凭据访问。
您是否有其他方法解决类似问题?或者您是否知道如何保护此类令牌凭据,例如我的 amazon 或 facebook?