300 字
2 分钟
前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略
前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略
🔒 前言:安全是 Web 开发中不可忽视的重要环节。每年都有大量网站因为安全漏洞遭受攻击,造成数据泄露和财产损失。
一、XSS 攻击与防御
1.1 XSS 攻击原理
XSS 攻击允许攻击者将恶意脚本注入到其他用户浏览的页面中。
1.2 防御方案
// 使用 textContentelement.textContent = userInput;
// 使用 DOMPurifyimport DOMPurify from 'dompurify';const clean = DOMPurify.sanitize(dirtyHTML);1.3 CSP
Content-Security-Policy: default-src 'self'; script-src 'self'1.4 Cookie 安全
Set-Cookie: session=xxx; HttpOnly; Secure; SameSite=Strict二、CSRF 攻击与防御
2.1 CSRF Token
if (req.body._csrf !== req.session.csrfToken) { return res.status(403).send('Invalid token');}2.2 SameSite Cookie
Set-Cookie: session=xxx; SameSite=Strict三、点击劫持防御
X-Frame-Options: DENYContent-Security-Policy: frame-ancestors 'none';四、其他安全威胁
4.1 HTTPS 与 HSTS
Strict-Transport-Security: max-age=31536000; includeSubDomains4.2 安全响应头
const helmet = require('helmet');app.use(helmet());4.3 输入验证
import * as yup from 'yup';
const userSchema = yup.object({ email: yup.string().email().required(), age: yup.number().integer().min(0).max(150)});五、安全最佳实践
- 使用 HTTPS
- 设置 CSP
- 配置 Cookie 安全属性
- 验证用户输入
- 转义输出内容
- 定期更新依赖
六、总结
Web 安全核心要点:
- XSS:输入过滤、输出编码、CSP
- CSRF:Token 验证、SameSite Cookie
- 点击劫持:X-Frame-Options
- MITM:HTTPS、HSTS
永远不要信任用户的输入!
前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略
https://www.oferry.com/posts/a81/