网络安全

HTTPS 原理

❓ 三次握手、四次挥手

中间人攻击 MITM

是指攻击者在通信双方之间秘密窃听或篡改数据的行为
攻击者通过劫持通信信道(如公共 Wi-Fi、DNS 劫持),伪装成客户端或服务端,窃取敏感信息(如密码、Cookie)或注入恶意内容

典型步骤:

  1. 拦截:攻击者控制通信链路(如 ARP 欺骗、伪造 Wi-Fi 热点)
  2. 解密(可选):若通信未加密(如 HTTP),直接读取明文数据;若使用加密(如 HTTPS),需破解或伪造证书
  3. 篡改/窃取:修改传输内容(如注入恶意脚本)或窃取会话信息

如何防御?

  1. 客户端升级到 HTTPS 协议
  2. 使用 Web Crypto API 加密
  3. 服务端只接受 HTTPS 不接受 HTTP

XSS

向网页注入恶意脚本,利用用户浏览器执行攻击代码,分为三类:

  • 存储型 XSS:恶意脚本存储到服务器(如评论区)
  • 反射型 XSS:恶意脚本通过 URL 参数直接反射到页面
  • DOM 型 XSS:纯前端 DOM 操作导致的漏洞

如何防御?

  1. 内容转义
  2. 使用 CSP 限制资源的来源

CSRF

利用用户已登录状态,诱导用户访问恶意页面发起伪造请求

如何防御?

  1. Token 验证
  2. 服务端阻止第三方网站请求
  3. Cookie 设置 SameSite

综合防御策略

  1. 输入过滤 + 输出编码
  2. 关键 Cookie 设置 Secure/HttpOnly/SameSite
  3. 敏感操作增加二次验证(2FA)
  4. 定期安全审计(XSS/CSRF 测试)
.innerHTML = userInput // 高风险
 
document.write() // 高风险
 
eval() // 极高风险