Web 安全攻防全景指南(20 章) × 福建政采网 逐项审计报告
评估时间:2026-03-10
评估目标:zfcg.czt.fujian.gov.cn
参照标准:Web 安全与区块链安全攻防全景指南(20 章 87 子节)
审计概览热力图
| 章节 |
审计项 |
发现数 |
最高风险 |
概要 |
| Ch1 注入攻击 |
7 项 |
2 |
🟢 低 |
WAF 拦截有效 |
| Ch2 客户端数据安全 |
5 项 |
5 |
🔴 紧急 |
Token/PII 明文存储 |
| Ch3 跨域安全 |
5 项 |
3 |
🟡 中 |
CORS Headers 过宽 |
| Ch4 HTTPS 传输安全 |
6 项 |
4 |
🔴 紧急 |
RC4-MD5 弱密码套件! |
| Ch5 认证与会话 |
5 项 |
4 |
🔴 高危 |
无暴破防护 |
| Ch6 服务器端漏洞 |
4 项 |
1 |
🟢 低 |
路径遍历被拦截 |
| Ch7 服务器配置 |
5 项 |
4 |
🔴 紧急 |
Nacos 8848 暴露 |
| Ch8 开源依赖 |
3 项 |
2 |
🟡 中 |
jQuery CVE |
| Ch9 DDoS |
4 项 |
1 |
🟡 中 |
无速率限制 |
| Ch10 供应链 |
2 项 |
1 |
🟡 中 |
前端依赖未锁定 |
| Ch11 容器/云原生 |
2 项 |
0 |
— |
未直接发现 |
| Ch12 密码学 |
3 项 |
2 |
🔴 高危 |
SM4 密钥明文暴露 |
| Ch13 安全日志 |
2 项 |
1 |
🟡 中 |
错误日志存 localStorage |
| Ch14 隐私合规 |
3 项 |
2 |
🟡 中 |
PII 明文可提取 |
| Ch15 移动端/PWA |
3 项 |
0 |
✅ |
非 PWA,无 Service Worker |
| Ch16 社会工程 |
2 项 |
2 |
🟡 中 |
无 SPF/DMARC 防骗 |
| Ch17 区块链 |
— |
— |
— |
不适用 |
| Ch18 安全信息源 |
— |
— |
— |
建议性条目 |
| Ch19 SDLC |
2 项 |
2 |
🟡 中 |
缺少威胁建模 |
| Ch20 术语 |
— |
— |
— |
参考性条目 |
Ch1. Web 端安全注入
1.1 SQL 注入 → 🟢 低危
| Payload |
结果 |
指南对照 |
admin'-- |
WAF 静默 DROP |
✅ 有 WAF 防护 (1.1) |
UNION SELECT 1,2,3-- |
WAF DROP |
✅ |
admin" OR 1=1-- |
WAF DROP |
✅ |
✅ 符合指南 1.1 「WAF 作为额外防御层」规范。后端是否使用参数化查询待确认。
1.2 XSS → 🟡 中危(理论风险高)
| 检查项 |
状态 |
指南条款 |
| CSP 策略 |
❌ 未配置(meta 和 header 均无) |
违反 1.2 CSP 规范 |
| HttpOnly Cookie |
❌ access_token 可被 JS 读取 |
违反 1.2 HttpOnly 规范 |
| 安全模板引擎 |
✅ Vue.js 默认转义 |
符合 1.2 规范 |
| jQuery 1.12.4 |
❌ CVE-2020-11022/11023 |
违反 1.2 + 8.1 规范 |
1.3 命令注入 → 未测试(无直接输入系统命令的可见入口)
1.4 SSRF → 未测试(需要认证态业务接口)
1.5 XXE → 🟢 低风险(系统使用 JSON,非 XML)
1.6 SSTI → 未测试
1.7 LDAP 注入 → 未测试
Ch2. Web 客户端本地数据安全
2.1 Cookie 安全 → 🔴 紧急
| 属性 |
access_token |
tenantId |
isPwdSecurity |
指南要求 |
| HttpOnly |
❌ |
❌ |
❌ |
必须 |
| Secure |
未设置 |
未设置 |
未设置 |
必须 |
| SameSite |
未设置 |
未设置 |
未设置 |
必须 Strict/Lax |
| Domain/Path |
未限制 |
未限制 |
— |
应严格限制 |
严重违反 指南 2.1 全部 Cookie 安全属性规范。
2.2 Local Storage → 🔴 紧急
| 键名 |
内容 |
风险 |
指南条款 |
portal-access_token |
完整 JWT |
🔴 XSS → 冒充 |
严重违反 2.2「绝不存储敏感数据」 |
debug |
调试标志 |
🟡 架构泄露 |
生产环境不应保留 |
loglevel |
日志级别 |
🟡 |
同上 |
2.3 Session Storage → 🔴 紧急
| 键名 |
泄露内容 |
指南条款 |
ice-USER_DATA_INFO |
手机号/邮箱/CA标识/userId |
严重违反 2.2 |
gpx-menu |
菜单权限配置 |
🟡 业务逻辑泄露 |
2.4 IndexedDB → ✅ 安全(未使用)
2.5 浏览器缓存 → 🟡 中危
- 主页未设置
Cache-Control: no-store(允许缓存敏感页面)
- 网关 API 有
Cache-Control: no-cache, no-store(✅)
Ch3. 跨域安全与同源策略
3.1 SOP → ✅ 基本合规
3.2 CORS → 🟡 中危
| 测试 |
结果 |
指南条款 |
Access-Control-Allow-Origin 反射 evil.com |
❌ 未反射(✅) |
符合 3.2 白名单 |
Access-Control-Allow-Headers |
*(通配符) |
违反 3.2「限制头部」 |
3.3 CSRF → 🟡 中危
- ❌ 未发现 Anti-CSRF Token
- ❌ SameSite Cookie 未设置
- 指南要求至少实施 SameSite + CSRF Token 双重防护
3.4 点击劫持 → 🟡 不完整
| 页面 |
X-Frame-Options |
CSP frame-ancestors |
主页 / |
❌ 缺失 |
❌ 缺失 |
| 网关 API |
✅ SAMEORIGIN |
❌ 缺失 |
主页可被嵌入到任意 iframe 中,存在点击劫持风险。
3.5 跨域信息泄露 → 🟡 中危
| 发现 |
详情 |
| JSONP 端点 |
/api/jsonp?callback=test 返回 {"code":10010002,"msg":"您还未登录"} — 泄露认证状态 |
| WebSocket |
/ws 返回 nsssjss is null — 端点存在且返回内部错误信息 |
Ch4. HTTPS 与传输层安全
4.1 TLS 密码套件 → 🔴 紧急
| 项目 |
实际值 |
安全要求 |
状态 |
| 协商密码套件 |
RC4-MD5 |
AES-256-GCM |
🔴 极危险 |
| 协议版本 |
TLS 1.2 |
TLS 1.2+ |
⚠️ 但不支持 1.3 |
| SSLv3 |
无法测试(客户端不支持) |
必须禁用 |
— |
| TLS 1.0 |
❌ 已拒绝(alert 70) |
必须禁用 |
✅ |
| TLS 1.1 |
❌ 已拒绝(alert 70) |
必须禁用 |
✅ |
| TLS 1.3 |
❌ 被拒绝 |
应支持 |
❌ |
RC4-MD5 风险说明:
- RC4 在 2015 年被 RFC 7465 正式禁止用于 TLS
- MD5 哈希已被证明存在碰撞攻击
- 此组合可能允许攻击者解密传输数据(BEAST、POODLE 变种攻击)
4.2 证书信息
| 项目 |
值 |
| 颁发者 |
WoTrus DV Server CA (沃通) |
| 信任链 |
USERTrust RSA CA → WoTrus DV → zfcg.czt.fujian.gov.cn |
| 有效期 |
2025-04-17 至 2026-04-28 |
| 指纹 |
SHA256: 72:3E:D3:C6:B7:... |
4.3 HTTP 安全头 → 🔴 主页严重缺失
| 安全头 |
主页 / |
网关 API |
指南要求 |
Strict-Transport-Security |
❌ |
❌ |
必须 |
Content-Security-Policy |
❌ |
❌ |
必须 |
X-Content-Type-Options |
❌ |
✅ nosniff |
必须 |
X-Frame-Options |
❌ |
✅ SAMEORIGIN |
必须 |
X-XSS-Protection |
✅ 1; mode=block |
✅ |
已弃用,应为 0 |
Referrer-Policy |
❌ |
✅ no-referrer |
推荐 |
Permissions-Policy |
❌ |
❌ |
推荐 |
4.4 OAuth HTTP 降级 → 🔴 高危
OAuth 授权重定向使用 HTTP 而非 HTTPS(违反指南 4.1 全站 HTTPS 要求):
Ch5. 身份认证与会话安全
5.1 密码安全 → 🟡 中危
| 测试项 |
结果 |
指南条款 |
| 弱密码校验 |
❌ 已关闭 (isShowWeakPassword: false) |
违反 5.1 密码策略 |
| 暴力破解防护 |
❌ 5 次连续无阻断 |
严重违反 5.1 速率限制 |
| 验证码强度 |
4 位静态图形码 |
违反 5.1 CAPTCHA 规范 |
| 账户锁定 |
❌ 未发现 |
违反 5.1 规范 |
5.2 MFA → ❌ 未实施
系统仅依赖密码 + 图形验证码,未提供任何 MFA 选项。违反指南 5.2 多因素认证要求。
5.3 会话管理 → 🟡 中危
- Token 有效期约 7 小时(过长)
- Token 过期验证正常 ✅
- 会话固定防护:未测试(需在登录前后对比 session ID)
5.4 JWT 安全 → 部分安全
| 攻击 |
结果 |
指南条款 |
alg: none 伪造 |
✅ 被正确拒绝 |
符合 5.4 |
| RS256 算法 |
✅ 安全 |
符合 5.4 |
| Token 存储位置 |
❌ localStorage |
违反 5.4「使用 HttpOnly Cookie」 |
| Payload 信息过载 |
❌ 含 PII |
违反最小化原则 |
5.5 OAuth 2.0 → 🔴 高危
| 检查项 |
状态 |
| PKCE |
❌ 未实施 |
| state 参数 |
0,0,0,0,0,0(可预测) |
| redirect_uri 验证 |
通过 HTTP 重定向(🔴) |
Ch6. 服务器端安全漏洞
6.1 文件上传 → 未测试(需认证态)
6.2 反序列化 → 未测试
6.3 目录遍历 → 🟢 低(被拦截)
6.4 业务逻辑(IDOR) → 🟡 中
- Token 中含
orgId、tenantId,可用于构造 IDOR 请求
- userTypeNow 修改被检测到(刷新时触发"登录超时")
Ch7. 服务器配置与基础设施安全
7.1 Web 服务器加固 → 🟡 部分合规
| 配置项 |
状态 |
指南要求 |
server_tokens off |
❌ 暴露 openresty |
应隐藏 |
| TLS 配置 |
❌ RC4-MD5 |
应仅允许 AES-GCM |
| 请求体限制 |
未测试 |
应限制 |
7.2 端口暴露 → 🔴 紧急
| 端口 |
服务 |
风险 |
| 8080 |
HTTP (404) |
🟡 中 |
| 8848 |
Nacos (TCP OPEN) |
🔴 紧急 |
| 9090 |
代理 (502) |
🟡 中 |
| 8090 |
HTTP (400) |
🟡 中 |
7.3 DNS 安全 → 🔴 高危
| 检查项 |
状态 |
指南条款 |
| DNSSEC |
❌ 未签名 |
违反 7.3 DNS 安全 |
| CAA 记录 |
❌ 未设置 |
违反 证书管理规范 |
| SPF |
❌ 无 TXT 记录 |
违反 16.3 邮件防护 |
| DMARC |
❌ NXDOMAIN |
严重违反 邮件安全 |
| DKIM |
❌ NXDOMAIN |
严重违反 邮件安全 |
无 DMARC + 无 SPF = 攻击者可以完全伪造 @czt.fujian.gov.cn 的邮件
Ch8. 开源软件与依赖安全
| 组件 |
版本 |
CVE |
CVSS |
指南条款 |
| jQuery |
1.12.4 |
CVE-2020-11022/11023 |
6.1 |
8.1 过时组件 |
| CKEditor |
未知 |
多个历史 XSS |
中 |
8.1 |
| sm2.min.js |
V3.0.0.574 |
未知 |
— |
应关注 |
Ch9. DDoS 防护
- ❌ 登录接口无速率限制 → 应用层 CC 攻击风险
- ✅ 使用 OpenResty(可通过 Lua 实现 limit_req)
- SYN 代理/负载均衡器存在(解释了端口扫描全 OPEN 现象)
Ch10. 供应链安全
- ❌ 前端未发现
package-lock.json(依赖版本可能未锁定)
- ❌
config.js 明文暴露 RSA 公钥和 SM4 密钥
Ch12. 密码学安全
| 项目 |
发现 |
风险 |
| TLS 密码套件 |
RC4-MD5 |
🔴 已被 RFC 7465 禁止 |
| SM4 密钥暴露 |
config.js 中明文 |
🔴 客户端加密可被破解 |
| RSA 公钥暴露 |
config.js 中明文 |
🟡 公钥暴露本身风险有限 |
| JWT 签名 |
RS256 |
✅ 安全 |
Ch13. 安全日志与监控
- ❌ 错误日志写入 localStorage(
gpbe-expertweb-errLog、gpcms-errLog)
- 可能泄露后端堆栈、接口路径、异常信息
Ch14. 隐私合规
| 检查项 |
状态 |
关联法规 |
| PII 明文存储于浏览器 |
❌ 手机号/邮箱/CA标识 |
违反 PIPL 数据最小化 |
| Cookie 同意横幅 |
❌ 未发现 |
不适用(政务网站) |
| 隐私政策 |
未检查 |
— |
Ch15. 移动端/PWA 安全
| 检查项 |
状态 |
| Service Worker |
✅ 未注册(无劫持风险) |
| Web Manifest |
✅ 未使用(非 PWA) |
| IndexedDB |
✅ 未使用 |
| Cache Storage |
✅ 未使用 |
| Permissions |
✅ 全部为 prompt 状态 |
结论:不是 PWA 应用,Ch15 相关攻击面不存在。
Ch16. 社会工程学防护
| 检查项 |
状态 |
风险 |
| SPF |
❌ 未配置 |
可伪造政府邮件 |
| DKIM |
❌ 未配置 |
可伪造政府邮件 |
| DMARC |
❌ 未配置 |
🔴 可伪造 @czt.fujian.gov.cn 邮件 |
| PII 泄露 → 社工 |
手机号/邮箱可被 XSS 提取 |
🔴 钓鱼攻击可行 |
全量风险评级矩阵
🔴 紧急 / Critical(立即修复)
| # |
漏洞 |
章节 |
CVSS估 |
| C-01 |
TLS 使用 RC4-MD5 弱密码套件 |
Ch4/Ch12 |
7.5+ |
| C-02 |
JWT Token 存储于 localStorage |
Ch2/Ch5 |
8.0 |
| C-03 |
PII 明文存储于 sessionStorage |
Ch2/Ch14 |
7.5 |
| C-04 |
Nacos 8848 端口对公网开放 |
Ch7 |
9.0 |
| C-05 |
OAuth 重定向使用 HTTP |
Ch4/Ch5 |
8.0 |
🔴 高危 / High(一周内修复)
| # |
漏洞 |
章节 |
CVSS估 |
| H-01 |
登录接口无暴力破解防护 |
Ch5/Ch9 |
7.5 |
| H-02 |
主页缺失所有安全响应头 |
Ch4 |
6.5 |
| H-03 |
无 DMARC/SPF/DKIM 邮件保护 |
Ch16/Ch7 |
7.0 |
| H-04 |
Cookie 缺少 HttpOnly/Secure/SameSite |
Ch2 |
7.0 |
| H-05 |
SM4/RSA 密钥在 config.js 暴露 |
Ch12 |
6.5 |
| H-06 |
不支持 TLS 1.3 |
Ch4 |
5.5 |
🟡 中危 / Medium(一月内修复)
| # |
漏洞 |
章节 |
| M-01 |
CORS Access-Control-Allow-Headers: * |
Ch3 |
| M-02 |
缺少 Anti-CSRF Token |
Ch3 |
| M-03 |
jQuery 1.12.4 CVE |
Ch8 |
| M-04 |
Actuator 端点可公网触达 |
Ch7 |
| M-05 |
非标端口 8080/9090/8090 暴露 |
Ch7 |
| M-06 |
弱密码校验被关闭 |
Ch5 |
| M-07 |
Token 有效期 7h 过长 |
Ch5 |
| M-08 |
WebSocket /ws 端点暴露 |
Ch3 |
| M-09 |
JSONP 端点泄露认证状态 |
Ch3 |
| M-10 |
主页可被 iframe 嵌入(点击劫持) |
Ch3 |
| M-11 |
错误日志存 localStorage |
Ch13 |
| M-12 |
DNS 无 DNSSEC / CAA |
Ch7 |
| M-13 |
OAuth state 参数可预测 |
Ch5 |
| M-14 |
无 PKCE 保护 |
Ch5 |
| M-15 |
调试信息(debug/loglevel)留存生产环境 |
Ch13 |
P0 紧急修复路线图