一、跨站脚本攻击(XSS)
问题描述
XSS攻击通过向网页注入恶意脚本(如 JavaScript),在用户浏览器中执行,窃取Cookie、会话Token 或其他敏感信息。
持久型XSS:恶意代码被存储到服务器数据库(如评论区),长期影响用户。
非持久型XSS:通过URL 参数或表单输入直接触发,攻击范围有限。
解决方案
对用户输入内容进行转义和过滤,禁止 <script> 等危险标签的解析。
使用 HttpOnly 属性限制 JavaScript 读取 Cookie,防止会话劫持。
部署内容安全策略(CSP),限制外部脚本加载来源,仅允许可信域名资源。
二、跨站请求伪造(CSRF)
问题描述
攻击者诱导用户访问恶意页面,伪造用户身份向目标网站发送请求(如转账、修改密码)。
解决方案
服务端生成并验证 Token,确保请求来源合法性。
敏感操作使用 POST 请求而非 GET,降低 URL 参数泄露风险。
校验 Referer 头字段,拦截跨域非法请求。
三、点击劫持(Clickjacking)
问题描述
通过透明 iframe 覆盖页面按钮,诱导用户点击触发非预期操作(如关注、转账)。
解决方案
设置 HTTP 响应头 X-Frame-Options 为 DENY 或 SAMEORIGIN,禁止页面被嵌套。
使用 JavaScript 检测页面是否被嵌入 iframe,强制跳转至主页面。
四、中间人攻击(MITM)
问题描述
攻击者劫持用户与服务端通信,窃取或篡改传输数据(如登录凭证、支付信息)。
解决方案
强制使用 HTTPS 加密通信,避免明文传输敏感数据。
客户端严格校验服务器证书合法性(如域名、有效期、颁发机构)。
公共 Wi-Fi 环境下使用 VPN 建立加密隧道,隔离不安全网络。
五、本地存储数据泄露
问题描述
localStorage、sessionStorage 或 Cookie 中存储的敏感信息可能被恶意脚本窃取。
解决方案
避免在客户端存储密码、密钥等高敏感数据。
定期清理过期数据,限制存储生命周期。
六、其他安全隐患
CSP 配置不足
未限制外部资源加载可能导致恶意脚本注入,需通过 Content-Security-Policy 头定义白名单。
第三方库漏洞
依赖的第三方库(如 jQuery 插件)若存在漏洞,可能成为攻击入口,需定期更新至安全版本。
总结
前端安全需关注输入输出过滤、通信加密、权限控制 三大核心,结合技术手段(如 CSP、Token 验证)与规范管理(如依赖更新、漏洞监测),形成纵深防御体系。