跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言java

网络安全常见十大漏洞总结:原理、危害与防御策略

详细总结了网络安全领域常见的十大漏洞,包括弱口令、SQL 注入、文件上传、XSS、CSRF、SSRF、XXE、远程代码执行、反序列化及目录遍历。针对每种漏洞,文章阐述了其产生原理、潜在危害以及具体的防御策略,涵盖代码示例与安全配置建议,旨在帮助开发者构建更安全的 Web 应用架构。

霸天发布于 2025/2/7更新于 2026/10/2491 浏览
网络安全常见十大漏洞总结:原理、危害与防御策略

一、弱口令

产生原因

弱口令的产生主要与用户的安全意识薄弱及个人使用习惯有关。为了便于记忆,用户往往设置简单的密码,或者直接使用系统默认的初始密码。

危害

攻击者利用弱口令可以轻松进入后台管理系统修改资料,侵入金融系统盗取资金,访问 OA 系统获取企业内部机密文件,甚至控制监控系统进行实时监控,造成严重的数据泄露和财产损失。

防御建议

设置强密码应遵循以下原则:

  1. 不使用空口令或系统默认口令。
  2. 密码长度不小于 8 个字符,建议 12 位以上。
  3. 避免使用连续字符(如 AAAAAAAA)或重复组合(如 tzf.tzf)。
  4. 密码应由大写字母、小写字母、数字和特殊字符四类中的至少三类混合组成。
  5. 不包含个人敏感信息,如姓名、生日、手机号、邮箱等。
  6. 避免使用字典单词或简单的键盘序列。
  7. 定期更换密码,建议每 90 天更新一次。

二、SQL 注入

产生原因

当 Web 应用向数据库传递 SQL 语句时,如果未对用户输入的参数进行严格过滤或转义,攻击者可以构造特殊的 SQL 语句,将其作为代码执行。

本质

将用户输入的数据当作可执行的代码来处理,违背了'数据与代码分离'的安全原则。

关键点

  1. 用户能够控制输入的内容。
  2. Web 应用将用户输入的内容直接带入数据库执行。

危害

  • 盗取网站敏感信息(如用户表、配置表)。
  • 绕过后台认证登录。
  • 提权获取服务器系统权限。
  • 读取或修改数据库文件。

防御措施

  1. 预编译语句:使用 PreparedStatement 绑定变量,确保参数不会被解析为 SQL 命令。
    String sql = "SELECT * FROM user WHERE id = ?";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    pstmt.setInt(1, userId);
    
  2. 输入过滤:使用正则表达式过滤特殊字符(如 select, union, drop 等)。
  3. 最小权限原则:数据库连接账号仅授予必要的操作权限。

三、文件上传漏洞

原理

若服务端未对上传文件的类型、内容或后缀名进行严格验证,攻击者可上传恶意脚本文件(如 .php, .jsp, .sh),从而在服务器上执行任意代码。

成因

  • 服务器配置错误,允许脚本目录执行。
  • 前端校验被绕过。
  • 后端白名单/黑名单过滤不严。

危害

  • 上传 Webshell 获取服务器控制权(GetShell)。
  • 篡改网站页面内容。
  • 窃取服务器敏感数据。

防御措施

  1. 白名单机制:仅允许特定的安全后缀(如 .jpg, .png)。
  2. 目录权限:上传目录设置为不可执行权限。
  3. 重命名文件:使用随机文件名存储上传文件。
  4. 内容检测:检查文件魔数(Magic Number),防止后缀欺骗。
  5. 独立存储:将上传文件存储在独立的域名或对象存储服务中。

四、XSS(跨站脚本攻击)

原理

攻击者在网页中嵌入客户端脚本(通常是 JavaScript),当其他用户浏览该页面时,脚本在用户的浏览器上下文中执行,导致会话劫持或数据窃取。

危害

  • 盗取用户 Cookie 和 Session 信息。
  • 钓鱼诈骗,诱导用户输入敏感信息。
  • 篡改页面内容,传播恶意软件。
  • 内网扫描与横向移动。

防御措施

  1. 输出编码:根据上下文(HTML、JS、URL)对特殊字符进行编码(如 < 转为 &lt;)。
  2. 输入验证:限制用户输入的长度和格式。
  3. HttpOnly:设置 Cookie 的 HttpOnly 属性,禁止 JavaScript 访问。
  4. CSP 策略:实施内容安全策略(Content Security Policy),限制脚本来源。

五、CSRF(跨站请求伪造)

原理

攻击者利用目标用户的身份(已登录状态),诱导用户点击恶意链接或提交表单,从而在用户不知情的情况下执行非本意的操作。

危害

  • 篡改用户数据(如修改密码、转账)。
  • 盗取隐私信息。
  • 作为其他攻击链的辅助手段。

防御措施

  1. Referer 检查:验证 HTTP Referer 是否来自本站。
  2. Token 验证:在表单中添加一次性 Token(CSRF Token),服务端验证其有效性。
  3. 验证码:对关键操作要求输入验证码。
  4. SameSite Cookie:设置 Cookie 的 SameSite 属性为 Strict 或 Lax。

六、SSRF(服务器端请求伪造)

原理

攻击者构造恶意的 URL 发送给服务端,服务端在未做校验的情况下发起请求,导致攻击者通过服务端访问内网资源或外部服务。

危害

  • 扫描内网端口和服务。
  • 访问内网管理后台(如 http://127.0.0.1:8080/admin)。
  • 读取本地文件(如 file:///etc/passwd)。
  • 拒绝服务攻击(DoS)。

防御措施

  1. 协议限制:仅允许 http 和 https 协议。
  2. IP 白名单:禁止访问内网 IP 段(如 127.0.0.1, 10.x.x.x, 192.168.x.x)。
  3. 统一错误信息:避免返回详细的网络错误信息以暴露端口状态。
  4. DNS 校验:解析域名后校验返回的 IP 地址是否为公网 IP。

七、XXE(XML 外部实体注入)

原理

应用程序解析 XML 输入时,未禁用外部实体加载,攻击者可定义外部实体引用恶意文件或内网资源。

危害

  • 任意文件读取。
  • 内网端口探测。
  • 拒绝服务攻击(Billion Laughs Attack)。

防御措施

  1. 禁用外部实体:在代码层面关闭 DTD 和外部实体解析。
    • PHP: libxml_disable_entity_loader(true);
    • Java: dbf.setExpandEntityReferences(false);
    • Python: etree.XMLParser(resolve_entities=False)
  2. 输入过滤:过滤 <!DOCTYPE 和 <!ENTITY 关键字。

八、远程代码执行漏洞 (RCE)

原理

应用程序调用系统命令函数(如 system, exec)时,若攻击者可控制传入参数,即可拼接恶意命令执行。

危害

  • 完全控制系统权限。
  • 安装后门程序。
  • 破坏系统稳定性。

防御措施

  1. 避免使用危险函数:尽量不直接使用 eval, system, exec 等函数。
  2. 参数过滤:对输入参数进行严格的白名单校验和转义。
  3. 最小权限:运行服务的账户权限应限制在最低范围。
  4. 沙箱隔离:在容器或沙箱环境中运行不可信代码。

九、反序列化漏洞

原理

程序对用户输入的序列化字符串进行反序列化时,未验证数据完整性,攻击者可构造恶意对象触发代码执行。

危害

  • 远程代码执行(RCE)。
  • 权限提升。
  • 任意文件读取。

防御措施

  1. 避免反序列化:尽量使用 JSON 等安全格式替代原生序列化。
  2. 完整性校验:使用数字签名验证数据未被篡改。
  3. 输入验证:严格控制反序列化函数的参数类型和内容。
  4. 代码审计:定期检查第三方库和自定义序列化逻辑。

十、目录遍历漏洞

原理

Web 应用在处理文件路径时,未对用户输入的文件名进行充分校验,攻击者可通过包含 ../ 等字符访问服务器上的受限目录。

危害

  • 读取敏感配置文件(如 config.php, .env)。
  • 访问源代码文件。
  • 获取服务器文件系统结构。

防御措施

  1. 路径规范化:将用户输入的路径标准化,去除 .. 片段。
  2. 白名单校验:限制可访问的文件目录范围。
  3. 权限控制:Web 服务进程不应拥有过高文件系统权限。
  4. 输入过滤:禁止输入中包含 / 或 \ 等特殊字符。

目录

  1. 一、弱口令
  2. 产生原因
  3. 危害
  4. 防御建议
  5. 二、SQL 注入
  6. 产生原因
  7. 本质
  8. 关键点
  9. 危害
  10. 防御措施
  11. 三、文件上传漏洞
  12. 原理
  13. 成因
  14. 危害
  15. 防御措施
  16. 四、XSS(跨站脚本攻击)
  17. 原理
  18. 危害
  19. 防御措施
  20. 五、CSRF(跨站请求伪造)
  21. 原理
  22. 危害
  23. 防御措施
  24. 六、SSRF(服务器端请求伪造)
  25. 原理
  26. 危害
  27. 防御措施
  28. 七、XXE(XML 外部实体注入)
  29. 原理
  30. 危害
  31. 防御措施
  32. 八、远程代码执行漏洞 (RCE)
  33. 原理
  34. 危害
  35. 防御措施
  36. 九、反序列化漏洞
  37. 原理
  38. 危害
  39. 防御措施
  40. 十、目录遍历漏洞
  41. 原理
  42. 危害
  43. 防御措施

更多推荐文章

查看全部
  • 平凡人的努力与坚持:致敬默默前行者
  • Trae IDE 实战:利用 MCP Server - Figma AI Bridge 自动生成前端代码
  • AI 算力提升下的能耗与散热挑战及电源解决方案
  • 企业微信 CLI 接入 AI Agent 实践:结合 OpenClaw 与多模型网关
  • 前缀和算法实战:和为 K 的子数组
  • 深入理解 Web Worker:Web 应用多线程实践
  • 基于 YOLOv8/v11 与 LLM 的 Web 视觉检测系统 (Django+Vue3)
  • 本地部署 Apache Answer 问答平台并实现公网访问
  • Python 结合 AI 辅助开发的进阶实践与案例
  • OpenClaw 的“龙虾热”:技术、落地与安全危机全解析
  • 如何构建企业级 RAG 系统
  • SmolVLA 多场景落地:太空机器人舱内维护任务的动作规划适配
  • C++ 继承机制详解:同名成员调用与隐藏规则
  • Java 全栈工程师面试实录:从基础到复杂场景
  • MCP 插件配置实战:browser-tools-mcp 集成指南
  • 2026 年 3 月 13 日 AI 热点:芯片竞争、Agent 爆发与安全争议
  • Open WebUI MCPo 技术解析:将 MCP 工具转换为 OpenAPI 接口
  • 昇腾 NPU 实战指南:部署与推理 CodeLlama
  • 10 款主流网络爬虫工具深度对比与选型指南
  • 基于 AirLLM 实现 4GB 显存环境下的 Qwen2.5-72B 本地推理

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online