300 字
2 分钟
前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略

前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略#

🔒 前言:安全是 Web 开发中不可忽视的重要环节。每年都有大量网站因为安全漏洞遭受攻击,造成数据泄露和财产损失。


一、XSS 攻击与防御#

1.1 XSS 攻击原理#

XSS 攻击允许攻击者将恶意脚本注入到其他用户浏览的页面中。

1.2 防御方案#

// 使用 textContent
element.textContent = userInput;
// 使用 DOMPurify
import DOMPurify from 'dompurify';
const clean = DOMPurify.sanitize(dirtyHTML);

1.3 CSP#

Content-Security-Policy: default-src 'self'; script-src 'self'
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');
}
Set-Cookie: session=xxx; SameSite=Strict

三、点击劫持防御#

X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none';

四、其他安全威胁#

4.1 HTTPS 与 HSTS#

Strict-Transport-Security: max-age=31536000; includeSubDomains

4.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 安全核心要点:

  1. XSS:输入过滤、输出编码、CSP
  2. CSRF:Token 验证、SameSite Cookie
  3. 点击劫持:X-Frame-Options
  4. MITM:HTTPS、HSTS

永远不要信任用户的输入!

前端安全防护完全指南:XSS、CSRF 与点击劫持的深度防御策略
https://www.oferry.com/posts/a81/
作者
晨平安
发布于
2026-02-27
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00