强化数据库令牌存储的安全策略
1. 数据库令牌存储面临的威胁
数据库令牌存储存在诸多安全风险。若攻击者通过直接访问服务器或利用 SQL 注入攻击获取令牌数据库的访问权限,他们不仅能查看与令牌一同存储的敏感数据,还能使用这些令牌访问 API。由于数据库包含每个经过身份验证用户的令牌,这种安全漏洞的影响比单个用户令牌被盗更为严重。
即便将数据库服务器与 API 分离,并使用 TLS 保护它们之间的通信,数据库仍面临多种潜在威胁,具体如下:
- 读取访问 :攻击者可窃取令牌并使用它们访问 API。
- 写入访问 :攻击者能插入新令牌以获取访问权限,或修改现有令牌以扩大其访问范围。
- 删除访问 :攻击者可撤销其他用户的令牌,拒绝他们访问 API。
2. 数据库令牌哈希处理
认证令牌如同密码,是访问用户账户的凭证。为保护令牌,可对其进行哈希处理。与用户密码不同,认证令牌具有高熵,因此无需使用如 Scrypt 这样昂贵的密码哈希算法,可使用如 SHA - 256 这样快速的加密哈希函数。
以下是将令牌哈希添加到 DatabaseTokenStore 的代码示例:
@Override
public String create(Request request, Token token) {
var tokenId = randomId();
var attrs = new JSONObj
超级会员免费看
订阅专栏 解锁全文
621

被折叠的 条评论
为什么被折叠?



