企业级Web系统安全纵深防御完整设计方案(防御XSS/CSRF/重放/篡改/凭证劫持)

企业级Web系统安全纵深防御完整设计方案(防御XSS/CSRF/重放/篡改/凭证劫持)

企业级Web系统安全纵深防御完整设计方案(防御XSS/CSRF/重放/篡改/凭证劫持)

一、方案整体概述

1. 设计目标

彻底解决 Web 系统最核心四大安全风险:

  • XSS 跨站脚本攻击(存储型、反射型、DOM型)

  • CSRF 跨站请求伪造(全站彻底免疫)

  • 请求重放攻击、中间人篡改、抓包伪造

  • Token 窃取、会话劫持、长期凭证泄露

实现:无架构级安全漏洞、纵深防御、多层兜底、高危业务零风险,满足企业生产环境、等保规范安全标准。

2. 核心架构思想

  • 鉴权分层:短期业务令牌 + 长期刷新令牌分离,风险隔离

  • 存储分层:业务令牌内存存储防XSS窃取,刷新令牌HttpOnly Cookie防泄露、防CSRF

  • 传输加密:AES+RSA混合加密 + 时间戳防重放

  • 页面防御:CSP强制策略 + 全局输入输出转义根治XSS

  • 业务兜底:高危操作二次真人校验,彻底杜绝业务损失


二、双Token认证体系整体设计(核心防CSRF、防XSS劫持)

1. Token结构与时效设计

令牌类型作用过期时间存储位置
AccessToken(业务令牌)所有业务接口鉴权,携带用户ID、权限、设备指纹10~30分钟(短时效)前端运行内存变量,不存Cookie、不存LocalStorage
RefreshToken(刷新令牌)仅用于无感刷新AccessToken,不参与任何业务鉴权1~7天(长时效)HttpOnly + Secure + SameSite=Strict Cookie

2. 关键安全设计详解

(1)AccessToken 内存存储核心价值
  • 完全免疫XSS窃取:恶意JS只能读取Storage、Cookie,无法读取页面内存JS变量

  • 完全免疫CSRF攻击

业务鉴权必须前端手动在 Header 携带:Authorization: Bearer {token}
跨域请求浏览器不会自动携带内存Token,传统CSRF彻底失效

  • 页面刷新/标签关闭/路由重载自动销毁,泄露面极小
(2)RefreshToken Cookie 完整安全属性(强制落地)

服务端下发 Cookie 完整配置:

refreshToken=xxx; HttpOnly; Secure; SameSite=Strict; Path=/api/auth/refresh; Max-Age=604800

  • HttpOnly:禁止JS读取,XSS无法窃取刷新凭证

  • Secure:仅HTTPS环境传输,杜绝HTTP明文劫持

  • SameSite=Strict:所有第三方跨站请求一律不带Cookie,刷新接口无CSRF风险

  • Path限制:仅刷新接口可读取该Cookie,极大缩小攻击面

(3)JWT载荷加固规则

所有JWT强制包含字段:

  • sub:用户唯一ID

  • exp:过期时间

  • nbf:生效时间(禁止超前使用)

  • fingerprint:设备指纹(UA+设备特征哈希),Token绑定设备,跨设备窃取无效

3. RefreshToken 服务端管控机制(关键兜底)

  • 服务端维护RefreshToken 黑名单表

  • 触发场景立即拉黑失效:

    • 用户主动登出

    • 修改密码、绑定信息变更

    • 异地登录、设备下线

    • 账号冻结/注销

  • 黑名单数据定时清理过期数据,保证性能

4. 无感刷新逻辑

  • AccessToken 过期前/过期后,前端自动调用刷新接口

  • 浏览器自动携带 RefreshToken Cookie

  • 服务端校验:Cookie合法 + 未拉黑 + 设备指纹一致,下发新AccessToken

  • 全程无感知,用户无需重新登录


三、全站接口 AES+RSA 混合加密 + 时间戳防重放方案

1. 加密架构设计(行业标准安全组合)

  • RSA非对称加密:加密随机生成的AES密钥,解决密钥传输安全

  • AES对称加密:加密所有业务请求/响应报文,高效防篡改、防窃听

  • 时间戳+设备指纹:杜绝重放攻击、数据包复用

2. 完整请求加密流程

  1. 客户端生成一次性随机AES密钥(每次请求不同)

  2. 使用服务端公钥RSA加密AES密钥,放入请求头

  3. 使用AES密钥加密全部业务请求参数

  4. 请求携带:加密报文 + RSA加密后的AES密钥 +服务端时间戳+ 设备指纹

  5. 服务端私钥解密得到AES密钥 → 解密报文

  6. 校验时间戳、设备指纹、请求合法性

3. 时间戳防重放强制规则

  • 服务端时间为准,拒绝前端本地时间

  • 有效时间窗口:±60秒

  • 同一设备指纹+时间戳禁止重复请求,拦截批量重放

  • 超时、篡改、重复请求直接拦截并记录安全日志

4. 密钥运维策略

  • RSA公私钥定期轮换(月度更新)

  • AES密钥单次请求有效,不复用


四、高危业务二次校验兜底方案

1. 强制二次校验接口列表

所有涉及资金、账号权限、核心数据的接口必须二次验证:

  • 密码修改、手机号/邮箱换绑

  • 提现、转账、支付确认

  • 账号注销、权限变更、设备解绑

  • 核心隐私数据导出

2. 校验规则

  • 验证方式:短信验证码 / 邮箱验证码 / 人脸识别(三选一,可配置)

  • 验证码有效期:5分钟

  • 单次有效,验证后立即失效

  • 接口限流:单账号1分钟最多1次验证码请求,防轰炸

核心价值:即使前面所有防御被极端绕过,攻击者也无法完成高危业务操作,彻底杜绝业务损失。


五、全站XSS终极防御体系(根治所有类型XSS)

1. 前端代码规范(杜绝DOM型XSS)

禁止使用:innerHTML、document.write、eval、动态字符串执行函数

强制使用:textContent、createElement 原生安全API,自动转义特殊字符

2. 后端输入输出双防护

  • 输入层:白名单校验(禁止黑名单),严格限制输入格式、长度、字符范围

  • 输出层:分上下文精准转义

    • HTML上下文:转义 & < > " ’

    • JS上下文:转义 \ " ’ < >

    • URL上下文:禁止 javascript:/data: 危险协议

  • 富文本场景:统一使用 DOMPurify 安全过滤库,禁止手动过滤

3. 浏览器安全响应头强制开启

全站统一返回HTTP头:

  • X-XSS-Protection: 1; mode=block:浏览器内置XSS拦截

  • Content-Security-Policy严格策略:禁止内联JS、禁止eval、仅允许自有域名和可信CDN资源

4. 文件上传专项防护(防存储型XSS)

  • 校验文件后缀、文件MIME类型、文件头部真实二进制

  • 禁止上传 html、js、svg、xml 等可执行脚本文件

  • 上传文件独立域名存储、禁止脚本执行权限


六、辅助安全加固策略(全局兜底)

1. 接口限流与风控

  • 全局接口限流:单IP、单账号单位时间请求上限

  • 异常请求(高频、非法报文、篡改参数)自动拉黑、日志告警

2. 跨域辅助校验

服务端校验 Origin / Referer 请求头,仅放行本域名合法请求,作为CSRF辅助兜底。

3. 安全日志与审计

所有加密失败、Token非法、时间戳过期、二次校验失败、异常登录全部记录日志,支持安全溯源、攻防审计。


七、方案攻防结论(完整风险闭环证明)

1. 本方案如何彻底消灭 CSRF

  • 业务接口凭证为内存AccessToken,浏览器不会自动携带,无任何伪造可能

  • 刷新接口凭证为 Strict 模式Cookie,第三方跨域请求不带Cookie

  • 加密+时间戳杜绝伪造合法请求报文

结论:全站 0 CSRF 风险

2. 本方案如何彻底防御 XSS

  • AccessToken 内存存储,XSS无法窃取核心业务凭证

  • RefreshToken HttpOnly,JS无法读取刷新凭证

  • CSP + 输入输出转义 阻止恶意脚本执行

  • 短时Token + 设备绑定,即使极端泄露也快速失效、无法复用

结论:XSS 无法盗号、无法劫持会话、无法操控用户账号

3. 防御其他攻击

  • 防中间人窃听篡改:AES+RSA全站加密

  • 防重放攻击:时间戳+单次请求校验

  • 防账号被盗核心操作:高危接口二次真人校验


八、最终落地极简清单(可直接交付开发)

  1. AccessToken 内存存储、短时效10-30min,Header手动携带

  2. RefreshToken 长时效1-7天,Cookie配置:HttpOnly+Secure+SameSite=Strict+Path限制

  3. 服务端实现RefreshToken黑名单、设备指纹绑定JWT

  4. 全站AES+RSA混合加密+服务端时间戳防重放

  5. 高危业务短信/邮箱/人脸二次校验

  6. 全站CSP、X-XSS-Protection响应头、前后端XSS过滤规范

  7. 接口限流、跨域校验、安全日志审计

(注:部分内容可能由 AI 生成)