一、Web安全体系架构的全面剖析
1.1 分层防御模型(Defense in Depth)
1.1.1 网络层防护
- 防火墙技术:
- 状态检测防火墙(SPI):基于连接状态跟踪,阻断非法会话(如SYN Flood攻击)
- 下一代防火墙(NGFW):集成IPS、AV、URL过滤(如Palo Alto PA-5400系列)
- 配置示例:
# iptables规则示例:限制SSH访问源IP
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
1.1.2 主机安全加固
-
Linux安全基线:
- 禁用root远程登录:修改
/etc/ssh/sshd_config
→PermitRootLogin no
- 文件权限控制:
chmod 600 /etc/shadow
- SELinux强制模式:
setenforce 1
- 禁用root远程登录:修改
-
Windows安全加固:
- 关闭SMBv1协议:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 0
- 启用BitLocker全盘加密
- 关闭SMBv1协议:
1.1.3 应用层防护
- 输入验证框架:
- Java:Hibernate Validator(JSR 380规范)
@NotNull
@Size(min=8, max=20)
private String username; - Python:Pydantic数据模型验证
from pydantic import BaseModel, constr
class User(BaseModel):
password: constr(min_length=12, regex="^(?=.*[A-Z])(?=.*\d).*$")
- Java:Hibernate Validator(JSR 380规范)
1.2 安全开发全生命周期(SDLC)
1.2.1 需求分析阶段
- 威胁建模(STRIDE模型):
威胁类型 示例 缓解措施 伪装(Spoofing) 用户身份伪造 MFA多因素认证 篡改(Tampering) 参数注入攻击 数字签名验证
1.2.2 设计阶段
- 安全架构设计:
- 零信任架构(Zero Trust):
graph LR
A[用户设备] -->|持续验证| B(策略引擎)
B --> C{资源访问}
C -->|授权通过| D[数据加密通道]持续验证
授权通过
用户设备
策略引擎
资源访问
数据加密通道
- 微服务安全:OAuth2.0+JWT令牌传递
- 零信任架构(Zero Trust):
1.2.3 编码阶段
- 安全编码规范:
- 防止时间侧信道攻击:
# 不安全的比较方式
if password == stored_hash:
return True
# 安全比较(恒定时间)
import hmac
hmac.compare_digest(password, stored_hash) - 内存安
- 防止时间侧信道攻击: