CSRF攻击

简介: CSRF(跨站请求伪造)攻击利用用户登录态,诱导其发起非自愿请求,窃取资金或冒充发帖。攻击者通过钓鱼页面伪造对目标网站的请求,借助Cookie自动携带实现越权操作。防御手段包括:校验Referer、添加Token验证、设置Cookie SameSite属性、禁止第三方携带Cookie、关键操作使用验证码等,以阻断跨域请求伪造行为,保障用户安全。
  1. 介绍一下CSRF攻击的原理和防御?
    (Cross Site Request Forgy),打开同一浏览器时其他的网站对本网站造成的影响。原理就是攻击者构造出一个后端请求地址,诱导用户点击或者通过某些途径自动发起请求。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑。
    举个例子,用户同时打开了A网站和钓鱼网站。 假设A网站中有一个通过 GET 请求提交用户评论的接口,那么攻击者就可以在钓鱼网站中加入一个图片,图片的地址就是评论接口。

    1.1 CSRF攻击原理
  2. 用户登录A网站
  3. A网站确认身份(给客户端cookie)
  4. B网站页面向A网站发起请求(带上A网站身份)
    1.2 CSRF防御
  5. Get 请求不对数据进行修改
  6. 不让第三方网站访问到用户 Cookie
  7. 阻止第三方网站请求接口
  8. 请求时附带验证信息,比如验证码或者 Token
  9. SameSite
    ○ 可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。
  10. Token验证
    ○ cookie是发送时自动带上的,而不会主动带上Token,所以在每次发送时主动发送Token
  11. Referer验证
    ○ 对于需要防范 CSRF 的请求,我们可以通过验证 Referer 来判断该请求是否为第三方网站发起的。
  12. 隐藏令牌
    ○ 主动在HTTP头部中添加令牌信息
    禁止第三方网站带cookies
    same-site属性。 设置只有同一站点的请求才能携带cookie
    1.3 CSRF蠕虫
    如果某个用户打开了被攻击网页,并且用户同时访问了攻击者的网页。 那么攻击者的网页就会使用用户的身份发送一些请求,并且常用用户的身份发布一些评论或文章,里面包含攻击者的网页链接。如果其他用户看到了这个用户的这条评论,都甚至可以不点击,其他用户也会被盗用身份发送一些恶意请求。这样病毒的传播就会越来越快,影响越来越大。
    1.4 CSRF攻击危害
    ● 利用用户登录态
    ● 用户不知情
    ● 完成业务请求
    ● 盗取用户资金
    ● 冒充用户发帖背锅
    ● 损坏网站名誉
相关文章
|
10月前
|
敏捷开发 Java 测试技术
为什么要单元测试
单元测试看似“踩刹车”,实则让开发跑得更快。它提升代码质量、降低维护成本、加速问题定位,是高效研发的基石。通过测试金字塔,以单元测试为地基,助力软件持续迭代与高质交付。
|
10月前
|
机器学习/深度学习 存储 数据采集
🔥 高频面试题汇总
本文系统解析大模型核心技术,涵盖Transformer自注意力机制、多头注意力、位置编码原理,详解LLaMA与GPT架构差异,介绍LoRA、ZeRO优化策略及FlashAttention内存优化,提供显存与训练时间估算方法,并探讨幻觉抑制、安全性评估与垂直领域落地路径,助力深入理解与实战应用。(238字)
|
10月前
|
存储 NoSQL 数据库
📚 RAG技术
RAG(检索增强生成)通过结合外部知识库与大模型,提升回答准确率,缓解知识过时与幻觉问题。涵盖密集/混合检索、向量数据库选型及核心组件,附实战代码与面试要点,助力构建高效问答系统。
|
10月前
|
存储 物联网 决策智能
🔧 微调技术
微调是适配预训练模型的关键技术,涵盖指令微调、对齐微调与高效参数微调。LoRA通过低秩分解减少参数量,提升训练效率;其变体如LoRA+、QLoRA、AdaLoRA进一步优化性能与资源消耗。Prefix Tuning与Prompt Tuning则以极小参数调整实现高效迁移。不同方法在效果、速度与部署间权衡,满足多样需求。(239字)
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
1410 0
|
存储 移动开发 API
如何实现浏览器内多个标签页之间的通信
在浏览器中,可通过三种方式实现多标签页通信:一是利用 `localStorage`,通过设置及监听数据变化实现信息传递;二是借助 `Broadcast Channel API`,在同一频道下双向传输消息;三是运用 `SharedWorker`,作为共享工件在各标签间架起沟通桥梁。每种方法依据实际需求选择使用。
|
安全 Java 关系型数据库
代码规范Java阿里巴巴
本文介绍了阿里巴巴的《Java开发手册》,这是一份业界公认的代码规范手册,涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度。手册通过强制、推荐、参考三大类规约,详细指导开发者编写高质量的Java代码。文中还提供了常见问题的正反例对比,如方法参数类型一致性、SimpleDateFormat线程安全等问题的解决方案。此外,还介绍了如何安装和使用阿里规范插件来提高编码效率。
2392 9
|
安全 前端开发 Java
什么是 CSRF 攻击?
什么是 CSRF 攻击?
474 0
|
前端开发 JavaScript
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
本文介绍了如何在Vue3项目中实现一个鼠标拖动调整元素宽度的功能,并展示了点击按钮收起或展开侧边栏的效果,提供了完整的实现代码和操作演示。
2426 0
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
|
数据采集 分布式计算 监控
深入调查研究 Kettle
【10月更文挑战第20天】
627 0