码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Node中的CSRF攻击和防御


    Node中的CSRF攻击和防御

    假设有一个网上银行系统,用户可以通过该系统进行转账操作。转账功能的URL可能是这样的:

    https://www.bank.com/transfer?toAccount=123456&amount=1000
    

    当用户登录到银行系统,并在浏览器中访问这个URL时,银行系统会执行转账操作,将1000元转入账户123456。

    CSRF攻击过程:

    1. 受害者登录:用户Alice登录到她的网上银行账户(比如www.bank.com)。

    2. 攻击者准备攻击页面:攻击者Eve创建了一个恶意网站www.evil.com,并在该网站上嵌入了一段HTML代码或JavaScript代码,试图利用CSRF漏洞:

      <img src="https://www.bank.com/transfer?toAccount=999999&amount=1000" style="display:none">
      

      或者通过JavaScript发送请求:

      var img = new Image();
      img.src = "https://www.bank.com/transfer?toAccount=999999&amount=1000";
      
    3. 受害者访问恶意网站:当Alice在已经登录银行系统的情况下,访问了Eve的恶意网站,浏览器会自动执行页面中的代码,发送一个请求到银行系统。

    4. 请求执行:因为Alice已经在银行系统中登录,浏览器会带上Alice的会话Cookie。这时,银行系统收到请求后,会认为这是一个合法的请求,并执行转账操作,将1000元转入攻击者的账户999999。

    防御措施:

    • 设置后端的cookie 禁止跨域携带cookie 我们只需要把cookie设置的 SameSite:Strict即可;
    • 验证 referer和Origin 每个页面都会带这哥俩 通过验证这哥俩也就可以了
    • 使用token 每一次请求都带token
    • 使用验证码 要求用户进行敏感操作的时候 填写验证码
    • 表单随机数(这种做法是在服务端渲染的时候用)
      • 1.生成一个随机数放到 session中
      • 2.生成页面时,表单中加入一个隐藏的表单域 :
      • 3.服务端 进行验证随机数
      • 4.清除session中的随机数
    • 二次验证,比如要求用户获取验证码进行验证
  • 相关阅读:
    探索React Router:实现动态二级路由
    nestjs编程-nestjs装饰器
    我从自动化测试转为测试开发,资深测试总结测试开发技术栈,提升之路......
    毕业设计论文 免费领取源码 11819-SSM 球鞋资讯交流平台
    java 的基本语法格式
    docker部署ETC(以太经典)主网链
    python使用matplotlib可视化、使用marker参数自定义线图中数据点的标记形状、设定节点的样式(markers of plot)
    文生图一致性角色生成!谷歌最新文本到图片扩散模型工作
    Vue笔记基础
    满帮web页面首屏秒开解决之道
  • 原文地址:https://blog.csdn.net/weixin_47121832/article/details/141027971
  • 最新文章
  • 十分钟学习 TypeScript
    【学习笔记】《Python编程 从入门到实践》第1章:Python环境搭建与Hello World(完整版)
    初试 vibe coding:Tauri + React + Rust 构建的 windows 本地番茄钟
    从 Vibecoding 入门,到 Agent 差点入土
    IDEA Maven 手动替换第三方Jar包完整教程
    填充与积累:积分与面积的可视化
    告别 Django Admin!这个 NodeJS 全栈框架让你在 DTO 中直接配置 Table/Form 渲染
    重建 AI 认知第 1 篇:基础认知——一张地图看懂 AI Landscape
    VAPD AgentKit:可组合 Agent 前端通用库实践
    SolonCode v2026.5.21 发布,Web 能看项目,IM 能找队友
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号