← 返回目录

第 10 卷

第 10 / 10 卷日期:

• 实现方式:使用AJAX请求拦截器,对需要特定权限的接口,前端先验证用户是否拥有该权限,无权

• 注意:前端接口级权限控制仅为辅助,后端必须对每个敏感接口再次验证用户权限,防止攻击者绕

过前端权限控制直接调用接口。

三、前端认证和授权的安全加固措施

• 使用HTTPS协议:所有认证相关的请求(登录、令牌刷新、敏感接口)必须通过HTTPS传输,防

止令牌、用户名密码等敏感数据被窃听。

• 安全存储令牌:

  • 优先存储在sessionStorage中(生命周期随标签页关闭而消失,减少泄露风险),避免存储在

localStorage中(持久化存储,易被XSS攻击窃取)。

  • 若必须存储在Cookie中,需设置HttpOnly、Secure、SameSite属性,防止XSS和CSRF攻击。

• 设置合理的令牌有效期:JWT令牌有效期不宜过长(如2小时),同时实现令牌刷新机制(Refresh

Token),Refresh Token有效期可稍长(如7天),存储在HttpOnly Cookie中,减少令牌泄露风险。

• 防范XSS攻击窃取令牌:开启CSP(内容安全策略)、对用户输入进行过滤编码、避免使用

dangerouslySetInnerHTML(React)/v-html(Vue)等危险指令,防止XSS攻击窃取 localStorage/sessionStorage中的令牌。

• 防范CSRF攻击:若使用Cookie存储令牌,必须设置SameSite属性;同时对敏感操作(如修改密

码、转账)添加CSRF Token验证。

• 用户退出登录时清理数据:用户点击退出登录后,前端需清除存储的令牌、权限信息等,同时调用

后端退出接口(后端可注销当前令牌,使其失效)。

• 敏感操作二次验证:对核心敏感操作(如修改密码、绑定手机号、大额转账),添加验证码、短信

验证等二次验证机制,即使令牌泄露,也无法完成最终操作。

四、常见问题与避坑要点

• ❌ 仅依赖前端权限控制:后端必须对所有敏感接口进行权限验证,前端权限控制仅为用户体验优

化,无法替代后端验证。

  • ❌ 令牌存储在localStorage且未防范XSS:易被XSS攻击窃取令牌,导致会话劫持。

• ❌ JWT令牌包含敏感信息:JWT的Payload部分仅为Base64编码,可直接解码,禁止存储密码、

身份证号等敏感信息。

  • ✅ 定期刷新令牌:避免令牌长期有效,降低泄露风险。

• ✅ 退出登录时后端注销令牌:即使前端清理了令牌,后端也需将该令牌加入黑名单,防止攻击者

复用已泄露的令牌。

全站分卷索引 · 10 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷
  9. 9第 9 卷
  10. 10第 10 卷