Web 安全领域常见攻击类型

在 Web 安全领域,攻击方式多种多样,以下是最常见且危害性较高的 15 种攻击类型,按照攻击原理、危害和防御措施分类整理:


一、注入类攻击

1. SQL 注入(SQL Injection)

  • 原理:通过用户输入拼接 SQL 语句,篡改数据库查询逻辑。

    sql

    复制

    java 复制代码
    -- 用户输入: ' OR '1'='1
    SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...'
  • 危害:数据泄露、数据篡改、服务器沦陷。

  • 防御

    • 使用参数化查询(Prepared Statements)
    • ORM 框架(如 Sequelize、TypeORM)
    • 最小化数据库权限

2. XSS(跨站脚本攻击)

  • 原理:注入恶意脚本到网页中,在用户浏览器执行。

    html

    复制

    xml 复制代码
    <!-- 用户输入: <script>alert('XSS')</script> -->
    <div>{{ user_input }}</div>  <!-- 未转义时触发 -->

    运行 HTML

  • 分类

    • 存储型(恶意脚本存数据库)
    • 反射型(通过 URL 参数触发)
    • DOM 型(纯前端漏洞)
  • 防御

    • 输入输出转义(如 DOMPurify 库)
    • CSP 安全策略(Content-Security-Policy
    • HttpOnly Cookie(防止窃取会话)

3. 命令注入(Command Injection)

  • 原理:通过系统命令拼接执行恶意指令。

    bash

    复制

    makefile 复制代码
    # 用户输入: ; rm -rf /
    ping $(user_input)
  • 防御

    • 避免直接拼接命令(使用 API 替代)
    • 白名单校验输入

二、会话与身份认证攻击

4. CSRF(跨站请求伪造)

  • 原理:诱导用户点击链接,以用户身份发起恶意请求。

    html

    复制

    arduino 复制代码
    <img src="https://bank.com/transfer?to=hacker&amount=10000" width="0" height="0">

    运行 HTML

  • 防御

    • CSRF Token(同步令牌模式)
    • SameSite Cookie 属性
    • 关键操作需二次认证

5. 会话固定(Session Fixation)

  • 原理:攻击者强制用户使用已知的 Session ID。

  • 防御

    • 登录后重置 Session ID
    • 绑定用户 IP/User-Agent

6. JWT 篡改

  • 原理:修改 JWT 的 payload 或伪造签名。

  • 防御

    • 使用强密钥(HS256 或 RS256)
    • 校验签名和过期时间
    • 敏感操作限制 Token 有效期

三、前端特定攻击

7. 点击劫持(Clickjacking)

  • 原理:透明 iframe 覆盖按钮诱导点击。

    html

    复制

    css 复制代码
    <iframe src="malicious-site" style="opacity: 0; position: fixed;"></iframe>

    运行 HTML

  • 防御

    • HTTP 头 X-Frame-Options: DENY
    • CSP 的 frame-ancestors 指令

8. CORS 滥用

  • 原理:利用宽松的 CORS 配置窃取数据。

  • 防御

    • 限制 Access-Control-Allow-Origin 为具体域名
    • 避免使用 * 通配符

9. WebSocket 劫持

  • 原理:窃取或篡改 WebSocket 通信。

  • 防御

    • 使用 wss://(WebSocket over TLS)
    • 认证握手阶段

四、协议与配置漏洞

10. 中间人攻击(MITM)

  • 原理:拦截未加密的 HTTP 流量。

  • 防御

    • 全站 HTTPS(HSTS 强制跳转)
    • 证书钉扎(Certificate Pinning)

11. DNS 劫持

  • 原理:篡改 DNS 解析结果。

  • 防御

    • 使用 HTTPDNS
    • 监控域名解析异常

12. 不安全的反序列化

  • 原理:篡改序列化数据(如 JSON、XML)触发远程代码执行。

  • 防御

    • 校验数据完整性(如签名)
    • 避免直接反序列化为对象

五、其他高风险攻击

13. SSRF(服务端请求伪造)

  • 原理:诱骗服务器访问内部资源。

    复制

    bash 复制代码
    https://api.example.com/fetch?url=http://169.254.169.254/latest/meta-data
  • 防御

    • 过滤请求目标(禁用内网 IP)
    • 使用白名单域名

14. 文件上传漏洞

  • 原理 :上传恶意文件(如 .php.jsp)获取服务器权限。

  • 防御

    • 校验文件类型(魔数检测,非扩展名)
    • 存储到非 Web 目录

15. DoS/DDoS

  • 原理:耗尽服务器资源(如 CC 攻击、Slowloris)。

  • 防御

    • WAF(Web 应用防火墙)
    • 限流策略(如 Nginx 的 limit_req

防御体系全景图

mermaid

复制

css 复制代码
graph TD
A[输入验证] --> B[参数化查询]
A --> C[XSS 转义]
D[输出编码] --> E[CSP 策略]
F[会话安全] --> G[CSRF Token]
F --> H[HttpOnly Cookie]
I[HTTPS] --> J[HSTS]
K[最小权限] --> L[数据库只读账户]

关键工具推荐

工具 用途
OWASP ZAP 自动化渗透测试
Burp Suite 手动安全测试
Snyk 依赖库漏洞扫描
Nginx ModSecurity WAF 防护

总结

  • 开发阶段:遵循 OWASP Top 10 防护指南,代码审查时重点关注敏感操作。
  • 部署阶段:启用安全头(如 CSP、HSTS)、定期更新依赖库。
  • 监控阶段:日志审计 + 实时告警(如异常登录尝试)。

安全是一个持续的过程,没有 100% 的安全,只有不断提高的攻击成本

相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅5 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅6 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊6 小时前
jwt介绍
前端
爱敲代码的小鱼6 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax