保障API安全:从基础认证到高级密码存储
1. 引言
在API开发中,安全性是至关重要的。我们之前添加了一个新的API端点 POST /newsletters ,它可以将时事通讯发送给所有订阅者。但问题是,任何人都可以调用这个API,向整个邮件列表广播任意内容。因此,我们需要提升API的安全性。
2. 认证概述
为了验证调用 POST /newsletters 的用户身份,我们需要进行认证。常见的认证方式可分为以下三类:
- 用户知道的信息 :如密码、PIN码、安全问题答案等。
- 用户拥有的物品 :如智能手机、使用认证器应用等。
- 用户本身的特征 :如指纹、苹果的Face ID等。
然而,每种认证方式都有其弱点:
| 认证方式 | 弱点 |
| — | — |
| 用户知道的信息 | 密码需长且唯一,避免被暴力破解;不能在多个服务中重复使用,否则一个服务被攻破,其他服务也会受影响;用户难以记住大量复杂密码,密码管理器尚未普及且用户体验不佳。 |
| 用户拥有的物品 | 智能手机和U2F密钥可能丢失,导致用户无法登录账户;也可能被盗用,使攻击者有机会冒充用户。 |
| 用户本身的特征 | 生物特征无法更改,如指纹;伪造指纹比想象中容易,且政府机构可能滥用或丢失这些信息。 |
为了弥补单一认证方式的不足,我们可以采用多因素认证(MFA),即要求用户提供至少两种不同类型的认证因素才能获得访
超级会员免费看
订阅专栏 解锁全文
1618

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



