Web 安全基础认识指南
Web 应用安全基础
本文介绍 Web 应用中的常见安全风险与防护方案。
1. SQL 注入 (SQL Injection)
风险: 攻击者通过输入恶意 SQL 语句,获取或修改数据库数据。
易受攻击代码:
1 |
|
防护方案:
1 |
|
2. 跨站脚本攻击 (XSS)
风险: 在页面中注入恶意脚本,窃取用户 Cookie 或控制页面行为。
易受攻击代码:
1 | <div id="comment">{{ user_input }}</div> |
防护方案:
1 | <!-- 进行 HTML 转义 --> |
或在 JavaScript 中:
1 | function escapeHTML(text) { |
3. 跨站请求伪造 (CSRF)
风险: 利用用户已认证的状态,誘使用户执行非预期操作。
防护方案:
1 | <!-- 添加 CSRF Token --> |
4. 身份验证与授权
身份验证 (Authentication): 验证用户身份
- 使用强密码策略
- 实施多因素认证 (MFA)
- 安全存储密码(使用 bcrypt/Argon2)
授权 (Authorization): 验证用户权限
- 实施最小权限原则
- 正确检查用户权限
- 避免使用可预测的 ID
5. 敏感数据保护
传输层:
1 | ✓ 使用 HTTPS/TLS 加密数据 |
存储层:
1 | ✓ 不存储敏感信息(如密码原文) |
6. 常见防护检查清单
| 项目 | 状态 | 备注 |
|---|---|---|
| 输入验证 | ✓ | 验证所有用户输入 |
| 输出编码 | ✓ | 对输出内容进行转义 |
| HTTPS | ✓ | 全站HTTPS传输 |
| CSRF Token | ✓ | 关键操作需要验证 |
| 安全头部 | ✓ | CSP, X-Frame-Options 等 |
| 日志监控 | ✓ | 记录异常活动 |
| 定期更新 | ✓ | 及时修复安全补丁 |
更新于: 2026-03-23
难度: 中级
阅读时间: 8-10 分钟
参考资源: OWASP Top 10, CWE Top 25