通过访问控制建立信任
大多数应用认为只要有登录页面就是安全的。
登录只是第一步。一旦用户进入,你必须回答一个问题:这个用户能做什么?
许多人混淆了身份验证(Authentication)与授权(Authorization)。
• 身份验证问的是:你是谁? • 授权问的是:你被允许做什么?
用户可能成功登录,但这并不意味着他们应该看到每一条记录或编辑每一个个人资料。
使用基于角色的访问控制 (RBAC) 来使规则清晰化。
RBAC 通过将用户角色与允许的角色列表进行比对来工作。如果你不使用访问控制,你将面临以下风险:
- 仪表板过度暴露
- 过多的内部权限
- 意外的数据泄露
- 审计追踪不足
- 信任破裂
遵循最小权限原则。仅向用户授予其工作所需的访问权限。
• 支持人员不应看到所有的客户记录。 • 工程师默认不应拥有生产环境的访问权限。 • HR 数据必须保持隔离。 • 管理员角色必须保持稀缺且可审计。
有时仅靠角色是不够的。你需要基于操作的权限。用户可能可以查看记录,但不能删除它。这能为你提供细粒度的控制。
你还应该根据敏感度对数据进行分类: • 公开数据:姓名和照片。 • 私密数据:电子邮件和电话。 • 敏感数据:薪资或身份证号。
在代码中对这些类别进行不同的处理。这会让安全管理变得更加容易。
信任还需要问责制。每当有人接触敏感数据时,你的系统必须创建审计追踪。敏感操作必须留下痕迹。
在发布应用之前,请检查以下几点:
- 登录和会话流程是否安全?
- 权限是否基于角色和操作?
- 敏感数据是否已隔离?
- 你的默认设置是否具有限制性?
- 你是否记录了所有访问行为?
- 你能否向用户解释其权限?
身份验证让用户进入。授权让你的系统值得信赖。信任是一项产品特性。
