7. 网络安全-专栏说明

文章目录

  • 前言
  • [一、密码学基础:哈希算法(Hashing Algorithms)](#一、密码学基础:哈希算法(Hashing Algorithms))
    • [1. MD5 (Message Digest Algorithm 5)](#1. MD5 (Message Digest Algorithm 5))
    • [2. SHA (Secure Hash Algorithms)](#2. SHA (Secure Hash Algorithms))
    • [3. scrypt](#3. scrypt)
    • [4. bcrypt](#4. bcrypt)
    • [5. 对比矩阵](#5. 对比矩阵)
  • [二、常见 Web 攻击类型与防御](#二、常见 Web 攻击类型与防御)
    • [1. XSS(跨站脚本攻击,Cross-Site Scripting)](#1. XSS(跨站脚本攻击,Cross-Site Scripting))
    • [2. CSRF(跨站请求伪造,Cross-Site Request Forgery)](#2. CSRF(跨站请求伪造,Cross-Site Request Forgery))
    • [3. DDoS(分布式拒绝服务攻击,Distributed Denial-of-Service)](#3. DDoS(分布式拒绝服务攻击,Distributed Denial-of-Service))
    • [4. 页面劫持(Clickjacking / UI Redress)](#4. 页面劫持(Clickjacking / UI Redress))
  • [三、Web 安全最佳实践(Security Best Practices)](#三、Web 安全最佳实践(Security Best Practices))
    • [1. HTTPS(SSL/TLS)](#1. HTTPS(SSL/TLS))
    • [2. CORS(跨域资源共享)](#2. CORS(跨域资源共享))
    • [3. CSP(内容安全策略)](#3. CSP(内容安全策略))
    • [4. OWASP Top 10(关键风险)](#4. OWASP Top 10(关键风险))
    • [5. SSL/TLS (Secure Sockets Layer / Transport Layer Security)](#5. SSL/TLS (Secure Sockets Layer / Transport Layer Security))
    • [6. 服务器安全(Server Security)](#6. 服务器安全(Server Security))
    • [7. API 安全最佳实践(API Security Best Practices)](#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-1 160位输出 ❌ 不安全(Google 已实现碰撞) 已淘汰
SHA-2(SHA-256/512) NIST 标准,广泛使用 ✅ 安全(目前无有效碰撞) 数字签名、证书、HMAC
bcrypt 自带 salt,可调工作因子(cost) ✅✅ 强推荐 用户密码存储首选
scrypt 内存硬化(抗 GPU/ASIC 暴力破解) ✅✅✅ 更强 高安全要求场景(如加密货币、金融)
Argon2 2015 年密码哈希竞赛 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 / Referer Header(辅助手段)

💡 注意: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:

      javascript 复制代码
      X-Frame-Options: DENY
    • 使用 CSP:

      javascript 复制代码
      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 头部或 标签告诉浏览器哪些动态资源(脚本、样式、图片等)是被允许加载的。

  • 示例策略

    javascript 复制代码
    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

总结:安全是持续过程

"安全不是功能,而是属性。"

------ 你需要在设计、开发、部署、运维全生命周期中嵌入安全思维。

相关推荐
白帽黑客-晨哥4 小时前
湖南网安基地:构筑网络安全人才培养新高地
web安全·网络安全·渗透测试·就业·湖南网安基地·安服
网安INF4 小时前
AKA协议认证与密钥协商的核心原理
网络协议·安全·网络安全·密码学·aka
学网安的肆伍4 小时前
【038-安全开发篇】JavaEE应用&SpringBoot框架&MyBatis注入&Thymeleaf模版注入
spring boot·安全·java-ee
bleach-4 小时前
buuctf系列解题思路祥讲--[网鼎杯 2020 青龙组]AreUSerialz1——文件包含漏洞,PHP代码审计,php伪协议,php反序列化
开发语言·安全·web安全·网络安全·渗透测试·php
m0_738120724 小时前
应急响应——知攻善防蓝队靶机Web-1溯源过程
前端·网络·python·安全·web安全·ssh
Neolnfra5 小时前
SMB、FTP、MySQL... 配置不当,即是漏洞
linux·数据库·mysql·安全·网络安全·系统安全·安全架构
Dobby_055 小时前
【k8s】集群安全机制(一):认证
运维·安全·kubernetes
同聘云5 小时前
腾讯云国际站服务器如何做好cdn防御?cdn是怎么实现的?
服务器·安全·云计算
ggabb5 小时前
新国标电动车爬坡困境:当限速25km/h遭遇安全危机,无责伤亡谁来买单?
大数据·人工智能·安全