news 2026/3/10 20:36:23

7. 网络安全-专栏说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
7. 网络安全-专栏说明

文章目录

  • 前言
  • 一、密码学基础:哈希算法(Hashing Algorithms)
    • 1. MD5 (Message Digest Algorithm 5)
    • 2. SHA (Secure Hash Algorithms)
    • 3. scrypt
    • 4. bcrypt
    • 5. 对比矩阵
  • 二、常见 Web 攻击类型与防御
    • 1. XSS(跨站脚本攻击,Cross-Site Scripting)
    • 2. CSRF(跨站请求伪造,Cross-Site Request Forgery)
    • 3. DDoS(分布式拒绝服务攻击,Distributed Denial-of-Service)
    • 4. 页面劫持(Clickjacking / UI Redress)
  • 三、Web 安全最佳实践(Security Best Practices)
    • 1. HTTPS(SSL/TLS)
    • 2. CORS(跨域资源共享)
    • 3. CSP(内容安全策略)
    • 4. OWASP Top 10(关键风险)
    • 5. SSL/TLS (Secure Sockets Layer / Transport Layer Security)
    • 6. 服务器安全(Server Security)
    • 7. API 安全最佳实践(API Security Best Practices)
  • 四、学习与工具推荐
  • 总结:安全是持续过程

前言

网络安全(Web Security)

了解MD5、SHA、scrypt、bcrypt等哈希算法hashing Algorithms,XSS、CSRF、DDoS、页面劫持等网络攻击的相关知识,
以及,熟悉基于HTTPS、CORS、CSP、OWASP Risks、SSL/TLS、Server Security等安全最佳实践API Security Best Practices‌。


Web 安全(Web Security)是现代 Web 开发不可或缺的一部分。核心知识体系,包括密码学基础、常见攻击类型以及防御性安全实践。以下是对这些内容的系统化梳理与深度解析,帮助构建清晰、实用的网络安全认知框架。


一、密码学基础:哈希算法(Hashing Algorithms)

哈希算法将任意长度的数据映射为固定长度的摘要(哈希值),并且这个过程是单向的(理论上无法从哈希值反推出原始数据)。
用于安全存储敏感信息(如密码),不可逆,且需具备抗碰撞、抗暴力破解能力。

1. MD5 (Message Digest Algorithm 5)

  • 现状:已被证明存在严重漏洞(碰撞攻击),不再推荐用于安全相关的场景(如密码存储、数字签名)。
  • 历史用途:曾广泛用于校验数据完整性、早期密码存储(现在不安全)。

2. SHA (Secure Hash Algorithms)

  • SHA-1:曾经是主流,但现在也被认为不够安全,尤其是在需要抗碰撞性的场景中,正在被淘汰。
  • SHA-2 (包括 SHA-224, SHA-256, SHA-384, SHA-512):当前广泛推荐使用的安全哈希算法族。SHA-256 和 SHA-512 是最常用的成员。
  • SHA-3:最新的 NIST 标准,设计上与 SHA-2 不同,提供了另一种选择,但目前应用不如 SHA-2 广泛。

3. scrypt

  • 类型:密钥派生函数 (KDF)。
  • 特点:特意设计得计算密集且内存密集,使得暴力破解成本非常高。常用于密码存储和加密货币挖矿。

4. bcrypt

  • 类型:基于 Blowfish 加密算法的 KDF。
  • 特点:包含盐值(Salt)以防止彩虹表攻击,并且可以通过调整轮数(Cost Factor)来增加计算难度,适应硬件发展。非常适合用于密码哈希。

5. 对比矩阵

算法特点安全性适用场景
MD5快速、128位输出❌ 已被破解(碰撞攻击)禁止用于密码存储,仅可用于校验文件完整性(非安全场景)
SHA-1160位输出❌ 不安全(Google 已实现碰撞)已淘汰
SHA-2(SHA-256/512)NIST 标准,广泛使用✅ 安全(目前无有效碰撞)数字签名、证书、HMAC
bcrypt自带 salt,可调工作因子(cost)✅✅ 强推荐用户密码存储首选
scrypt内存硬化(抗 GPU/ASIC 暴力破解)✅✅✅ 更强高安全要求场景(如加密货币、金融)
Argon22015 年密码哈希竞赛 winner✅✅✅ 最佳实践新项目首选(优于 bcrypt/scrypt)

🔐最佳实践

  • 永远不要明文存密码,也不要使用 MD5 或 SHA-1
  • 使用bcrypt/Argon2(慢速哈希函数(Password Hashing Functions)) + 随机 salt
  • 验证时比对哈希值,而非解密

二、常见 Web 攻击类型与防御

了解这些攻击有助于识别风险并采取防御措施。

1. XSS(跨站脚本攻击,Cross-Site Scripting)

  • 原理:攻击者注入恶意脚本(如<script>alert(1)</script>),注入到其他用户浏览的网页中。
  • 危害:可以窃取用户 Cookie、会话令牌,冒充用户执行操作,篡改网页内容等。
  • 类型
    • Stored XSS:恶意脚本存入数据库(如评论区)
    • Reflected XSS:通过 URL 参数反射(如搜索框未过滤)
    • DOM-based XSS:前端 JS 动态操作 DOM 引入漏洞
  • 防御
    • 输入验证和过滤、输出编码(转义 HTML Entity Encode)
    • 使用CSP(Content Security Policy内容安全策略)
    • 避免使用危险的 JavaScript 方法。如 eval,innerHTML,改用textContent
    • 设置 Cookie 的HttpOnly(防窃取)

2. CSRF(跨站请求伪造,Cross-Site Request Forgery)

  • 原理:攻击者诱导已登录用户在不知情的情况下执行非预期的操作(如转账、修改密码)。
  • 利用点: 用户浏览器会自动携带目标网站的 Cookie 发起请求。
  • 防御
    • 使用Anti-CSRF Token(同步令牌模式):表单/请求头中携带一次性 token
    • 设置 Cookie 属性SameSite=StrictLax
    • 检查Origin/RefererHeader(辅助手段)

💡 注意:JWT 存于 localStorage 时不受 CSRF 影响(因不会自动发送),但易受 XSS 窃取 → 权衡存储位置。


3. DDoS(分布式拒绝服务攻击,Distributed Denial-of-Service)

  • 原理:利用大量的受控计算机(僵尸网络)同时向目标服务器发送海量请求,耗尽服务器资源(带宽、CPU、内存、连接数),使服务不可用,无法正常响应合法用户的请求。
  • 危害:网站瘫痪、服务不可用。
  • 常见类型
    • Volume-based:UDP Flood、ICMP Flood
    • Protocol-based:SYN Flood、Ping of Death
    • Application-layer:HTTP Flood(模拟真实请求)
  • 缓解措施
    • 使用 CDN / 云防护(Cloudflare、AWS Shield)
    • 限流(Rate Limiting)
    • Web 应用防火墙(WAF)
    • 自动扩容 + 负载均衡

4. 页面劫持(Clickjacking / UI Redress)

  • 原理:用透明 iframe 覆盖在合法按钮上,诱骗用户点击。

  • 防御

    • 设置 HTTP Header:

      X-Frame-Options:DENY
    • 使用 CSP:

      Content-Security-Policy:frame-ancestors'none';

三、Web 安全最佳实践(Security Best Practices)

实施这些实践可以显著提升 Web 应用的安全性。

1. HTTPS(SSL/TLS)

  • 作用:加密传输、身份认证、防篡改。通过 SSL/TLS 协议加密 HTTP 通信,确保数据在传输过程中的机密性和完整性,防止窃听和篡改。
  • 实现:获取并部署 SSL/TLS 证书。
  • 关键配置
    • 证书由可信 CA 签发(避免自签名)
    • 定期更新证书(Let’s Encrypt 自动化)
    • 使用 TLS 1.2+(禁用 SSLv3、TLS 1.0/1.1)
    • 启用 HSTS(Strict-Transport-Security: max-age=31536000

2. CORS(跨域资源共享)

浏览器的安全机制,限制网页从不同源(域名、协议、端口)请求资源。服务器可以通过设置 CORS 头部来明确允许哪些外部源访问其资源。

  • 目的:安全地允许跨域请求(浏览器默认阻止)。
  • 安全配置原则
    • 不要设置Access-Control-Allow-Origin: *(除非公开 API)
    • 明确指定可信源:Access-Control-Allow-Origin: https://trusted.com
    • 敏感操作(如带 Cookie)需设置credentials: true+ 精确 Origin
    • 限制暴露的 Header:Access-Control-Allow-Headers

3. CSP(内容安全策略)

一个额外的安全层,用于检测和削弱某些类型的攻击,包括 XSS 和数据注入攻击。

  • 作用:防止 XSS、数据注入、非法资源加载。 限制内联脚本执行、限制外部资源加载来源,有效缓解 XSS。

  • 工作方式:通过 HTTP 头部或 标签告诉浏览器哪些动态资源(脚本、样式、图片等)是被允许加载的。

  • 示例策略

    Content-Security-Policy:default-src'self';script-src'self''unsafe-inline'https://cdn.trusted.com;img-src*;
  • 进阶:启用report-uri收集违规日志

  • 工具:使用 CSP Evaluator 检查策略


4. OWASP Top 10(关键风险)

OWASP(开放式 Web 应用程序安全项目)定期发布的十大最关键的 Web 应用程序安全风险列表(如注入、失效的身份认证、敏感数据泄露、XML 外部实体 (XXE)、不安全的反序列化等)。
为开发者和安全人员提供了权威的风险意识和优先级参考,指导安全开发和测试。

最新版(2021)重点关注:

  1. Broken Access Control(越权访问)
  2. Cryptographic Failures(加密失效,如明文密码)
  3. Injection(SQL/NoSQL/Command 注入)
  4. Insecure Design(设计缺陷)
  5. Security Misconfiguration(默认配置、错误信息泄露)
  6. Vulnerable Components(使用含漏洞的第三方库)
  7. Identification and Auth Failures(弱认证、会话管理)
  8. Software and Data Integrity Failures(CI/CD 污染)
  9. Security Logging & Monitoring Failures
  10. SSRF(服务端请求伪造)

✅ 建议:定期进行SAST/DAST 扫描,使用Dependency-Check扫描依赖漏洞。


5. SSL/TLS (Secure Sockets Layer / Transport Layer Security)

  • 意义:实现 HTTPS 的底层加密协议。TLS 是 SSL 的继任者,更安全。
  • 作用:提供加密(保密性)、数据完整性校验、服务器(有时也包括客户端)身份认证。

6. 服务器安全(Server Security)

  • 操作系统及中间件安全:及时更新补丁、最小化安装、关闭不必要的服务和端口。如,中间件(Nginx、Redis、MySQL)。
  • 防火墙配置:限制入站和出站流量。如,限制开放端口(如只开 80/443)。
  • 访问控制:强密码策略、SSH 密钥认证、最小权限原则。
  • 日志监控:记录和分析系统及应用日志,及时发现异常行为。如,异常登录、高频请求。
  • 文件权限管理:确保敏感文件和目录有正确的访问权限。如,最小权限原则:服务以非 root 用户运行。
  • 入侵检测/防御系统 (IDS/IPS)。
  • 禁用目录列表隐藏版本号(如Server: nginx→ 关闭或泛化)

7. API 安全最佳实践(API Security Best Practices)

  • 使用 HTTPS:所有 API 通信都应加密。
  • 安全标头:设置适当的 HTTP 安全头(如 HSTS, X-Content-Type-Options, X-Frame-Options)。
  • 依赖项安全:定期更新第三方库和组件,修复已知漏洞。
  • 认证与授权:正确使用 JWT/OAuth2 、 RBAC/ABAC 等机制。
  • 输入验证:严格校验所有传入 API 的数据(如 JSON Schema),防止注入攻击。
  • 速率限制(Rate Limiting) :防止滥用和 DDoS 攻击。如,暴力破解、爬虫(如 100 req/min/IP)。
  • 敏感数据脱敏:不在日志或错误信息中暴露敏感数据,传输时使用 HTTPS。如,响应中不返回密码、身份证等。
  • 审计日志:记录关键操作(谁、何时、做了什么)

四、学习与工具推荐

  • 学习资源
    • OWASP Web Security Testing Guide (WSTG)
    • PortSwigger Web Security Academy(免费实战)
  • 工具
    • Burp Suite:拦截/修改请求,测试漏洞
    • OWASP ZAP:开源渗透测试工具
    • Nmap / Nikto:服务器扫描
    • jwt.io:调试 JWT

总结:安全是持续过程

“安全不是功能,而是属性。”
—— 你需要在设计、开发、部署、运维全生命周期中嵌入安全思维。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/9 5:40:00

25、配置 FreeBSD 拨号上网连接

配置 FreeBSD 拨号上网连接 在当今数字化时代,网络连接是我们生活和工作中不可或缺的一部分。对于使用 FreeBSD 系统的用户来说,配置拨号上网连接可能是一项具有挑战性但又十分必要的任务。本文将详细介绍如何在 FreeBSD 系统中配置拨号上网连接,包括所需的步骤、文件配置以…

作者头像 李华
网站建设 2026/3/9 18:34:28

29、X Window系统配置与启动指南

X Window系统配置与启动指南 1. 鼠标和键盘配置 1.1 鼠标类型与协议选择 如今,PS/2鼠标或USB鼠标较为常见,串口鼠标正逐渐被淘汰。使用 xf86config 程序配置X Window系统时,首先要以root用户登录,在命令提示符下输入 xf86config 启动程序。启动后,会要求选择鼠标协…

作者头像 李华
网站建设 2026/3/10 0:21:09

32、FreeBSD窗口管理器与桌面环境及办公软件全解析

FreeBSD窗口管理器与桌面环境及办公软件全解析 1. 窗口管理器与桌面环境的区别 在FreeBSD系统中,KDE是较为流行的桌面环境,但并非唯一选择,还有众多从简单到复杂的替代方案。窗口管理器和桌面环境存在明显差异: - 功能特性 :像KDE这样的桌面环境通常比单纯的窗口管理…

作者头像 李华
网站建设 2026/3/9 11:10:52

34、FreeBSD 多媒体与 Web 服务器使用指南

FreeBSD 多媒体与 Web 服务器使用指南 1. FreeBSD 多媒体功能 1.1 CD 播放器 KDE 自带了一个 CD 播放器,该播放器支持 CDDB 系统,这意味着它可以自动从互联网下载专辑和曲目信息。 1.2 混音器 FreeBSD 提供了一个可以通过命令行访问的混音器。 - 显示当前混音器设置 …

作者头像 李华
网站建设 2026/3/9 10:45:06

鸿蒙三方库—harmony-utils使用

简介 harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库&#xff0c;借助众多实用工具类&#xff0c;致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志…

作者头像 李华