csrf和ssrf的区别,攻击如何防护

news2024/11/18 17:23:17

CSRF(跨站请求伪造)和SSRF(服务器端请求伪造)都是网络安全中的常见攻击类型,但它们的目标和攻击方式有所不同。理解这两种攻击的区别对于有效地防御它们至关重要。

CSRF和SSRF的主要区别在于攻击的发起者和目标。CSRF利用了用户的浏览器来攻击用户已经认证的Web应用,而SSRF直接利用了服务器端应用来发起对其他系统的请求。两者都需要通过严格的输入验证和适当的安全措施来防御。
在这里插入图片描述

CSRF(跨站请求伪造)

  1. 目标:CSRF攻击目标是利用网站用户的浏览器,迫使用户在已认证的Web应用中执行非预期的操作。

  2. 工作原理

    • 攻击者诱使受害者访问一个包含恶意请求的网页(如通过邮件、消息或恶意网站)。
    • 如果受害者已经登录目标网站,该恶意请求看起来就像是来自受害者本人,因此被目标网站信任并执行。
  3. 攻击示例

    • 如果一个银行网站存在CSRF漏洞,攻击者可以构造一个表单,当受害者访问这个表单时,可能会无意中执行一次转账操作。
  4. 防御措施

    • 使用CSRF令牌,确保每次请求都是用户明确意图的结果。
    • 检查Referer头部,验证请求的来源。
      在这里插入图片描述

SSRF(服务器端请求伪造)

  1. 目标:SSRF攻击目标是迫使服务器端应用发起对内部或外部资源的请求。

  2. 工作原理

    • 攻击者将恶意请求发送到服务器端应用。
    • 服务器端应用在没有充分验证输入的情况下,执行了这个请求,可能访问了内部系统或向外部发送敏感数据。
  3. 攻击示例

    • 如果一个Web应用允许用户指定用于获取数据的URL,攻击者可以利用这个功能来让服务器访问内部服务,如数据库或管理接口。
  4. 防御措施

    • 限制服务器可以访问的URL或IP地址。
    • 对用户提供的数据进行严格的验证和过滤。

针对CSRF(跨站请求伪造)和SSRF(服务器端请求伪造)这两种攻击,可以采取一系列防御措施来保护系统和数据。下面分别介绍针对这两种攻击的防护策略。

针对CSRF的防护

  1. 使用CSRF令牌

    • 在表单提交或重要的请求中使用CSRF令牌(也称为anti-CSRF令牌),确保每个请求都是用户明确意图的结果。
  2. 检查Referer头

    • 验证HTTP请求的Referer头部,以确保请求是从可信的源发起。
  3. 使用SameSite Cookie属性

    • 设置Cookie的SameSite属性,限制Cookie在跨站请求中的发送。例如,设置为SameSite=Strict可防止Cookie在跨站请求中使用。
  4. 自定义请求头

    • 在Ajax请求中使用自定义HTTP头。由于跨站请求通常不能设置自定义头,这增加了安全性。
  5. 避免GET请求进行状态改变

    • 对于任何改变状态的操作,应使用POST请求而不是GET请求。
      在这里插入图片描述

针对SSRF的防护

  1. 输入验证和过滤

    • 对所有的用户输入进行严格的验证。特别是那些用于指定资源位置(如URLs)的输入,应限制只能访问预定义的安全域名或IP地址。
  2. 禁用不必要的协议

    • 禁止应用程序使用对安全性有风险的协议,例如file://dict://ftp://等。
  3. 网络隔离和分层

    • 尽量隔离内部网络,防止服务器直接访问关键内部资源。
  4. 限制出站数据流量

    • 限制服务器发出的数据流量和请求频率,以减少潜在的危害。
  5. 使用安全列表而非黑名单

    • 使用安全列表来指定允许的服务器出站请求,而不是试图列出所有可能的恶意请求模式。
  6. 错误处理

    • 适当管理错误响应,以防泄露关于内部网络结构的信息。

网络安全学习路线

如果你对网安、黑客感兴趣,可以跟着这个学习路线学习,需要资料可以找我。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1313815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-----3、物理机安装Linux

# 物理机安装Linux # 系统镜像获取 http://isoredirect.centos.org/centos/7/isos/ 例如: CentOS7.9.2009 arch (opens new window) 阿里云镜像 CentOS7.9.2009 x86 (opens new window) # 华为Atlas 500pro 表 2-1 系统版本及适配信息 名称内容操作系统型号CentO…

Ubuntu18.04.6下安装opencv库及OpenCV安装libjasper-dev依赖包错误

目录 01 解压安装包 02 安装cmake和依赖库 03 配置编译环境 01 解压安装包 创建一个名为Opencv的文件夹 mkdir opencv 将源码的压缩包复制到opencv目录下 将压缩包解压到opencv文件夹(指定一个文件夹) unzip opencv-3.4.11.zip -d opencv02 安装cm…

解决nuxt3子路由router-view中出现的document not defined错误

之前讲过几种解决document not defined错误的方法,但是今天碰到一种新情况: 就是访问根路由/ , 然后再跳转到子路由没有问题: 但是如果直接访问子路由时router-view会报这个错误。 我怀疑原因是: 直接访问子路由时,有可能dom树还…

Tableau快速入门-下载安装加载数据与仪表盘构建

官网介绍 官网连接如下: https://www.tableau.com/zh-cn tableau的产品包括如下: 参考:https://zhuanlan.zhihu.com/p/341882097 Tableau是功能强大、灵活且安全些很高的端到端的数据分析平台,它提供了从数据准备、连接、分析、协作到查阅…

【Matlab】三角函数的周期性图像可视化(附完整MATLAB代码)

三角函数的周期性图像可视化 前言三角函数:MATLAB对三角函数的理解和帮助: 正文思考步骤 代码实现结果 前言 三角函数: 三角函数是数学中一类描述角度和周期性变化的特殊函数。常见的三角函数包括正弦函数 ( sin ⁡ ) (\sin ) (sin) ,余弦函数 ( cos ⁡ ) (\cos…

力扣22. 括号生成(java 回溯法)

Problem: 22. 括号生成 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 我们首先要知道,若想生成正确的括号我们需要让右括号去适配左括号,在此基础上我们利用回溯去解决此题目 1.题目给定n个括号,即当回溯决策路径长度等于 2 n 2n…

【自动化测试】web3py 连接 goerli

web3py 连接 goerli 直接使用库里方法 if __name__ __main__:from web3.auto.infura.goerli import w3w3.eth.get_balance(get_address_by_private_key(os.getenv("AAA_KEY")))error info: websockets.exceptions.InvalidStatusCode: server rejected WebSocket …

计算机网络:物理层(三种数据交换方式)

今天又学到一个知识,加油! 目录 前言 一、电路交换 二、报文交换 三、分组交换 1、数据报方式 2、虚电路方式 3、比较 总结 前言 为什么要进行数据交换? 一、电路交换 电路交换原理:在数据传输期间,源结点与…

在Sqlite中通过Replace来实现插入和更新

你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导…

群晖上搭建短链接服务Yourls

什么 Yourls ? YOURLS是一组 PHP 脚本,允许您在服务器上运行您自己的 URL 缩短器。您将完全控制您的数据、详细统计数据、分析、插件等。它是免费且开源的。 安装 建数据库 老苏用了群晖自带的 MariaDB 10 数据库 在 phpMyAdmin 中创建名为 yourls 的空数据库 为…

Vue 子传父 组件传参 defineEmits

defineEmits 属性:用于创建自定义事件,接收子组件传递过来的数据。 注意:如果自定义事件的名称,和原生事件的名称一样,那么只会触发自定义事件。 defineEmits 仅适用于 setup 语法糖,其它写法请见&#x…

Qt容器QMdiArea 小部件提供一个显示 MDI 窗口的区域

## QMdiArea ## 控件简介 QMdiArea 继承 QAbstractScrollArea。QMdiArea 小部件提供一个显示 MDI 窗口的区域。QMdiArea的功能本质上类似于MDI窗口的窗口管理器。大多数复杂的程序,都使用MDI框架,在 Qt designer 中可以直接将控件 MDI Area 拖入使用。 ## 用法示例 例 qm…

注意std::shared_ptr的循环引用

指针智能是RAII的思想的具体体现。利用对象生命周期来管理资源。 在C11中,引入shared_ptr、weak_ptr和unique_ptr。 share_ptr是一个能有效解决赋值和拷贝构造的引用技术。 std::shared_ptr通过引用计数的方式来管理对象的生命周期,但是如果两个对象互…

『番外篇三』Swift “乱弹”之带索引遍历异步序列(AsyncSequence)

概览 在 Swift 开发中,我们往往在遍历集合元素的同时希望获得元素对应的索引。在本课中,我们将向小伙伴们展示除 enumerated() 方法之外的几种实现思路。在玩转普通集合之后,我们将用“魔法棒”进一步搞定异步序列带索引遍历的实现。 在本篇博主中,您将学到以下内容: 概…

同时获取el-select的label和value

ui如下: 需求如下: 在点击确认的时候,将id和name都传给一个接口,但是ui只用展示name,name用v-model绑定给input框,但是id不知道怎么传给后端。 解决方法如下: vue中elementUi的el-select同时…

jmeter,csv文件参数化+断言 实现一个接口的case

1、case 及其 测试数据 注意保存文件的编码格式 id,name,limit,status,address,start_time,assert_status,assert_message 100,小米100,1000,1,某某会展中心101,2023-8-20 14:20,200,add event success ,,,,,,10021,parameter error 100,小米102,1002,1,某某会展中心103,2023-…

postman接口测试之Postman配置环境变量和全局变量

前言  我们在测试的过程中,遇到最多的问题也可以是环境的问题了吧,今天开发用了这个测试环境,明天又换了另一个测试环境,这样对于我们测试非常的麻烦,特别最接口的时候需要来回的输入环境地址比较麻烦,今天…

LVS负载均衡集群——NAT地址转换模式与DR直接路由模式

1. LVS集群基本介绍 Cluster,集群、群集。 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。 2. 集群的类型 2.1 负载均衡群集(Load Balanc…

安路IP核应用举例(OSC、UART)

1.OSC(内部振荡器) 按照Project->New Project顺序新建工程后,后按照Tools->IP Generator顺序,创建IP核,如下图: 安路FPGA的内置OSC振荡模块频率可选30MHz、60MHz。 可选Verilog或VHDL语言。 如图,生成的.v文件只…

外包干了4个月,测试技术退步明显

先说一下自己的情况,本科生,20年通过校招进入杭州某软件公司,干了3年的功能测试,当然有半年是被封在了家里,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我…