终端PC Web安全 PartA
字数 1335 2025-08-22 12:22:24

PC Web安全教学文档:终端PC Web安全 PartA

1. PC Web应用背景与发展趋势

  • 行业现状:多数行业Windows应用已从原生客户端过渡到Web化
  • Web化优势
    • 容器稳定性高
    • 版本迭代稳定
    • 错误率更低
    • 跨平台方便
    • 开发成本低于C/C++客户端
  • 技术演进:从Duilib、QT到内嵌CEF、WebView2.0和Electron

2. 客户端安全分类与挑战

2.1 安全分类

  • 内因
    • 研发BUG
    • 程序内存数据修改/破坏
    • 接口安全权限过高被滥用
  • 外因
    • 注入攻击
    • 流量拦截
    • 代理篡改

2.2 防御措施

  • 驱动级或底层保护方案
  • 丰富数据维度,增强标签和分析能力
  • 增加Web安全防御:
    • Cookie安全
    • Web通信安全
    • XSS/CSRF防御

3. 安全生命周期管理

3.1 三阶段模型

  • 事前
    • 系统环境检测
    • 软件运行环境验证
    • 登录保护
    • 身份认证
  • 事中
    • 接口请求安全
    • 运行态安全
    • 数据态安全
    • 权限管控
    • 审计
  • 事后
    • 可追溯
    • 可排查
    • 可定性

4. URL感知技术

4.1 概念与作用

  • 检测当前是否运行在PC容器中
  • 属于事前和事中防护措施
  • 需平衡安全与性能/用户体验

4.2 实现案例

  • 某聊天软件通过URL感知运行环境
    • 非客户端环境不渲染主页面
    • 不触发接口功能
  • 效果:
    • 增加逆向/抓包难度
    • 提升端内调试门槛

5. 认证机制

5.1 基于Cookie的认证

  • 基本实现
    • Cookie包含客户端密钥和系统属性
    • 加密存储Value数据
  • 缺点:易被仿造或盗取绕过

5.2 增强型Cookie双向认证

  1. PC Client生成随机特征填充Cookie
  2. 浏览器基于规则/约定二次加密
  3. 浏览器回调客户端方法解密验证
  4. 双向认证通过后填充真实Cookie
  • 优势:增加对抗难度,随机运算提高破解复杂度

5.3 基于共享数据/通信的认证

  • 实现方式
    • RPC/Socket传输运行态数据
    • 客户端与浏览器握手认证
  • 流程
    1. 认证完成后客户端发送真实数据
    2. 浏览器写入Cookie或跨域存储
  • 优势
    • 攻击需构造模拟服务
    • 需分析私有协议
    • 攻击成本显著提高

5.4 基于三方服务的认证

  • 流程
    1. 客户端和Web生成认证Data
    2. 使用Server公钥加密
    3. 发送至认证服务验证
    4. 认证成功分发Token
    5. 后续操作基于Token鉴权
  • 扩展功能
    • 异常环境感知
    • 数据采集
    • 系统状态截屏

6. Loading Local Page安全风险

6.1 设计初衷

  • 提升用户体验
  • 缓解网络/环境导致的加载延迟
  • 快速渲染界面

6.2 安全隐患

  • 典型实现
const xmlHttpReq = new XMLHttpRequest()
xmlHttpReq.open()
xmlHttpReq.onreadystatechange=function(location.href = res.data)
xmlHttpReq.send()
  • 注入示例
<script type="text/javascript" src="require.js"></script>
<script type="text/javascript">
require(["launcher"]);
</script>
function launcher() {
    alert("loading success.");
}
(function(){
    launcher()
})()
  • 攻击场景
    • 跳转伪造页面
    • Cookie窃取
    • 钓鱼攻击

6.3 防护建议

  1. 避免业务HTML本地存储
  2. 非必要不在本地HTML中包含业务接口请求
  3. 加载前校验本地HTML完整性
  4. 存在问题时可:
    • 覆盖本地文件重新加载
    • 客户端请求线上加载

7. 总结与展望

  • PC Web安全是终端安全与Web安全的融合
  • 需在成熟度基础上做加法
  • PartB将探讨CEF/WebView2的攻击面

本教学文档基于先知社区文章《终端PC Web安全 PartA》整理,保留了所有关键技术点和安全实践,去除了无关描述,可作为PC Web安全防御的参考指南。

PC Web安全教学文档:终端PC Web安全 PartA 1. PC Web应用背景与发展趋势 行业现状 :多数行业Windows应用已从原生客户端过渡到Web化 Web化优势 : 容器稳定性高 版本迭代稳定 错误率更低 跨平台方便 开发成本低于C/C++客户端 技术演进 :从Duilib、QT到内嵌CEF、WebView2.0和Electron 2. 客户端安全分类与挑战 2.1 安全分类 内因 : 研发BUG 程序内存数据修改/破坏 接口安全权限过高被滥用 外因 : 注入攻击 流量拦截 代理篡改 2.2 防御措施 驱动级或底层保护方案 丰富数据维度,增强标签和分析能力 增加Web安全防御: Cookie安全 Web通信安全 XSS/CSRF防御 3. 安全生命周期管理 3.1 三阶段模型 事前 : 系统环境检测 软件运行环境验证 登录保护 身份认证 事中 : 接口请求安全 运行态安全 数据态安全 权限管控 审计 事后 : 可追溯 可排查 可定性 4. URL感知技术 4.1 概念与作用 检测当前是否运行在PC容器中 属于事前和事中防护措施 需平衡安全与性能/用户体验 4.2 实现案例 某聊天软件通过URL感知运行环境 非客户端环境不渲染主页面 不触发接口功能 效果: 增加逆向/抓包难度 提升端内调试门槛 5. 认证机制 5.1 基于Cookie的认证 基本实现 : Cookie包含客户端密钥和系统属性 加密存储Value数据 缺点 :易被仿造或盗取绕过 5.2 增强型Cookie双向认证 PC Client生成随机特征填充Cookie 浏览器基于规则/约定二次加密 浏览器回调客户端方法解密验证 双向认证通过后填充真实Cookie 优势 :增加对抗难度,随机运算提高破解复杂度 5.3 基于共享数据/通信的认证 实现方式 : RPC/Socket传输运行态数据 客户端与浏览器握手认证 流程 : 认证完成后客户端发送真实数据 浏览器写入Cookie或跨域存储 优势 : 攻击需构造模拟服务 需分析私有协议 攻击成本显著提高 5.4 基于三方服务的认证 流程 : 客户端和Web生成认证Data 使用Server公钥加密 发送至认证服务验证 认证成功分发Token 后续操作基于Token鉴权 扩展功能 : 异常环境感知 数据采集 系统状态截屏 6. Loading Local Page安全风险 6.1 设计初衷 提升用户体验 缓解网络/环境导致的加载延迟 快速渲染界面 6.2 安全隐患 典型实现 : 注入示例 : 攻击场景 : 跳转伪造页面 Cookie窃取 钓鱼攻击 6.3 防护建议 避免业务HTML本地存储 非必要不在本地HTML中包含业务接口请求 加载前校验本地HTML完整性 存在问题时可: 覆盖本地文件重新加载 客户端请求线上加载 7. 总结与展望 PC Web安全是终端安全与Web安全的融合 需在成熟度基础上做加法 PartB将探讨CEF/WebView2的攻击面 本教学文档基于先知社区文章《终端PC Web安全 PartA》整理,保留了所有关键技术点和安全实践,去除了无关描述,可作为PC Web安全防御的参考指南。