Appearance
🛡️ XSS (Cross-Site Scripting) 跨站脚本攻击
攻击者通过在网页中注入恶意脚本,当用户浏览这些页面时,脚本会在用户的浏览器中执行,从而达到窃取用户数据、会话劫持等攻击目的。
💾 存储型 XSS
- 🦹♂️ 恶意用户提交了含有恶意 JavaScript 代码的内容到服务器
- 🗄️ 服务器未经过滤就将恶意内容存储到数据库中
- 👤 其他正常用户访问包含这些恶意内容的页面
- ⚠️ 服务器返回包含恶意代码的页面内容
- 💥 恶意脚本在用户浏览器中执行,可能导致:
- 窃取用户 Cookie
- 劫持用户会话
- 修改页面内容
- 记录用户键盘输入
- 其他安全隐患
🔄 反射型 XSS
也称为非持久型 XSS,需要诱导用户点击特制的恶意链接:
- 🔗 攻击者构造带有恶意代码的 URL 链接
- 📧 通过社交媒体、邮件等方式诱导用户点击链接
- 🌐 用户访问该 URL 时,服务器将恶意代码从 URL 中取出并返回
- 💻 恶意代码在用户浏览器中执行
🛠️ 防范措施
输入验证和过滤
输出编码(HTML 实体编码)
设置 CSP (Content Security Policy)
CSP 是一个额外的安全层,通过告诉浏览器哪些外部资源可以加载和执行来创建白名单机制,从而防止 XSS 攻击。
httpContent-Security-Policy: default-src 'self'; script-src 'self' https://apis.google.com;
html<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://apis.google.com;" />
使用 HttpOnly Cookie
使用现代前端框架的 XSS 防护机制