安全三要素 CIA
信息安全的核心框架
CIA 三要素(CIA Triad)是信息安全领域最基础的概念框架,所有安全控制措施的目标都可以归结为保护这三个属性中的一个或多个。
保密性
完整性
可用性
当你看到一个安全漏洞报告时,思考它破坏了哪个 CIA 属性:SQL 注入可以泄露数据(破坏保密性)、修改数据(破坏完整性);DDoS 破坏可用性;XSS 劫持用户 Session(破坏保密性)。用 CIA 框架分析,有助于快速评估漏洞的业务影响。
Web 安全威胁全景
三大标准体系:OWASP / CVE / CWE
HTTP 协议安全要素
HTTPS 与 TLS:加密传输的基石
HTTP 是明文协议——所有数据(包括密码、Cookie、个人信息)都以明文在网络上传输,任何网络中间节点(路由器、ISP、公共 WiFi 热点)都可以读取甚至篡改流量。HTTPS = HTTP + TLS,提供了传输加密、身份认证(服务器证书)、数据完整性三重保护。
HSTS:强制 HTTPS 的最后防线
即使服务器支持 HTTPS,用户第一次访问 http://example.com 时,仍有被降级攻击(SSL Stripping)的风险。HSTS(HTTP Strict Transport Security)通过 HTTP 响应头告诉浏览器:该域名在指定时间内只允许 HTTPS 访问,浏览器将拦截所有 HTTP 请求并自动升级为 HTTPS。
# HSTS 响应头示例
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
# max-age=31536000 表示 365 天内强制 HTTPS
# includeSubDomains 对所有子域名生效(谨慎:影响所有子域)
# preload 表示申请加入浏览器内置 HSTS 预加载列表
# 预加载列表:https://hstspreload.org/
# 加入预加载列表后,即使第一次访问也会直接使用 HTTPS
TLS 证书校验与常见错误
同源策略 SOP 与 CORS
同源策略(Same-Origin Policy)
同源策略是浏览器最核心的安全机制之一。同源的定义是:协议(scheme)+ 域名(host)+ 端口(port)三者完全相同。不同源的页面之间,JavaScript 默认不能读取对方的 DOM、Cookie、LocalStorage,也不能读取 XHR/Fetch 响应内容。
CORS:跨域资源共享
CORS(Cross-Origin Resource Sharing)是一种允许服务器声明哪些跨源请求被允许的机制。它通过 HTTP 响应头实现,完全由服务器控制——浏览器发送跨域请求时,检查服务器响应中的 CORS 头,决定是否允许 JavaScript 读取响应。
# 宽松配置(危险!允许任意来源)
Access-Control-Allow-Origin: *
# 正确配置(只允许指定来源)
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
# 注意:Access-Control-Allow-Credentials: true 时
# Access-Control-Allow-Origin 不能为 *,必须指定具体来源
动态反射来源是最危险的错误:服务器读取请求的 Origin 头,直接原样返回 Access-Control-Allow-Origin: <任意Origin>,加上 Allow-Credentials: true,等同于任何网站都可以携带用户 Cookie 读取 API 响应——这是严重的安全漏洞。正确做法:维护一个允许来源的白名单,严格校验后再返回。
安全开发生命周期 SDLC
安全开发生命周期(Security Development Lifecycle,SDL 或 Secure SDLC)是将安全活动融入软件开发各个阶段的实践框架,而不是在开发完成后才"打补丁"。
| 开发阶段 | 安全活动 | 工具示例 |
|---|---|---|
| 需求阶段 | 定义安全需求、隐私需求;识别合规要求(GDPR/PCI-DSS) | 威胁模型文档、STRIDE |
| 设计阶段 | 威胁建模、安全架构审查、最小权限设计 | OWASP Threat Dragon、draw.io |
| 编码阶段 | 安全编码规范、IDE 安全插件、代码审查 | SonarQube、Semgrep、ESLint security |
| 测试阶段 | SAST 静态分析、DAST 动态测试、渗透测试 | OWASP ZAP、Burp Suite、CodeQL |
| 部署阶段 | 依赖扫描、容器镜像扫描、配置审计 | trivy、Snyk、checkov |
| 运营阶段 | 日志监控、告警、漏洞响应、Bug Bounty | SIEM、Datadog Security、HackerOne |
核心名词解释
安全工具入门
Burp Suite
Burp Suite 是 Web 安全测试最广泛使用的工具,由 PortSwigger 开发。核心功能是 HTTP/HTTPS 代理——拦截浏览器与服务器之间的所有流量,让测试人员可以查看、修改、重放任意请求。免费社区版功能已相当强大,专业版(约 $450/年)增加了主动扫描器和更多高级功能。
- Proxy:拦截/修改浏览器流量的核心代理
- Repeater:手动重放和修改单个 HTTP 请求
- Intruder:自动化模糊测试和暴力破解(社区版有速率限制)
- Scanner:自动扫描常见漏洞(仅专业版)
- Decoder:各种编码解码(Base64、URL、HTML实体等)
OWASP ZAP
OWASP Zed Attack Proxy(ZAP)是完全开源免费的 Web 安全扫描器。功能与 Burp Suite 社区版类似,但额外提供了自动扫描器,特别适合集成到 CI/CD 流水线中进行自动化安全测试。ZAP 提供 Docker 镜像,可以一行命令扫描 Web 应用。
# OWASP ZAP Docker 快速扫描(基线扫描,用于 CI/CD)
docker run -t owasp/zap2docker-stable zap-baseline.py \
-t https://your-app.example.com \
-r zap-report.html
# 完整 AJAX 爬虫扫描(更彻底,用于定期安全评估)
docker run -t owasp/zap2docker-stable zap-full-scan.py \
-t https://your-app.example.com \
-r zap-full-report.html
Web 安全的基础是三个核心概念:① CIA 三要素——保密性、完整性、可用性,是所有安全控制的目标;② HTTP 安全层——HTTPS/TLS 保护传输,HSTS 防止降级攻击,证书体系提供身份认证;③ 同源策略是浏览器安全的核心边界,CORS 是服务器明确放宽该限制的机制,必须谨慎配置。建立这些基础概念后,才能真正理解各类 Web 漏洞的根本原因。