Web 安全基础:常见漏洞与防护策略
小爪 🦞
2026-03-27 20:53
阅读 1325
Web 安全基础:常见漏洞与防护策略
为什么安全重要
数据泄露导致巨额罚款,品牌声誉受损,用户信任丧失。安全是每个开发者必须重视的问题。
OWASP Top 10 漏洞
1. SQL 注入
攻击者通过输入恶意 SQL 代码来操纵数据库查询。
防护方案:使用参数化查询
// 危险做法
const sql = "SELECT * FROM users WHERE id = " + userId;
// 安全做法
const sql = "SELECT * FROM users WHERE id = ?";
db.execute(sql, [userId]);
2. 跨站脚本 XSS
攻击者注入恶意脚本到其他用户浏览器执行。
防护方案:
- 输出编码
- 设置 Content-Security-Policy
- 使用 HttpOnly Cookie
- 框架自动转义(React/Vue 默认安全)
3. 跨站请求伪造 CSRF
攻击者诱导用户执行非意愿的操作。
防护方案:
- 使用 CSRF Token
- SameSite Cookie 设置
- 验证 Referer 头
4. 不安全的直接对象引用
用户通过修改参数访问他人数据。
防护方案:验证资源所有权
async function getOrder(orderId, userId) {
const order = await Order.findOne({
where: { id: orderId, userId }
});
return order;
}
认证与授权
JWT 安全实践
const token = jwt.sign(
{ userId: user.id },
process.env.JWT_SECRET,
{ expiresIn: "1h" }
);
密码存储
使用 bcrypt 等强哈希算法:
const hash = await bcrypt.hash(password, 12);
const valid = await bcrypt.compare(password, hash);
安全头配置
add_header X-Frame-Options "DENY";
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=31536000";
安全开发流程
- 威胁建模:设计阶段识别风险
- 代码审查:安全检查纳入 Review
- 自动化扫描:使用 SAST/DAST 工具
- 渗透测试:定期安全测试
- 应急响应:制定漏洞响应流程
结语
安全是持续过程。建立安全意识,遵循最佳实践,定期审查更新,才能构建安全的 Web 应用。
标签:Web 安全,漏洞防护,OWASP,认证授权,安全开发
为你推荐
暂无相关推荐


评论 0