Web 安全是每个开发者必须了解的领域。XSS 和 CSRF 是最常见的两类攻击,理解它们的原理才能有效防御。

一、XSS:跨站脚本攻击

攻击者把恶意脚本注入到网页,在其他用户浏览器执行。

二、XSS 危害

三、XSS 防御

// 永远不要
el.innerHTML = userInput;
// HTML 转义后再插入
el.textContent = userInput;   // 自动转义
最根本的防御:所有用户输入都当成不可信数据,输出到 HTML 时一定转义。现代前端框架默认做了转义,但 innerHTML、v-html 等要格外小心。

四、CSRF:跨站请求伪造

攻击者诱导已登录用户,在不知情下发送请求。比如用户登录银行后访问恶意网站,恶意网站偷偷发起转账请求——浏览器会自动带上用户的 Cookie。

五、CSRF 防御

六、其他常见威胁

七、安全检查清单

八、小结

安全无小事。核心原则:永远不信任用户输入。掌握 XSS/CSRF 这两大基础威胁,能挡住绝大多数 Web 攻击。