CSRF和SSRF原理、区别、防御方法

news/2024/7/4 7:20:00

CSRF(Cross-Site Request Forgery)原理:CSRF是一种由攻击者构造形成,由服务端发起请求的一个安全漏洞。它是一种利用用户在已登录的网站中提交非法请求的行为,攻击者通过伪造用户提交的请求,将恶意请求发送至受信任的网站,导致用户在不知情的情况下执行恶意操作。

SSRF(Server Side Request Forgery)原理:SSRF是一种服务器端请求伪造的安全漏洞。它是由攻击者构造形成,由服务端发起的请求。由于服务端对用户提供的可控URL地址过于信任,没有经过严格检测,攻击者可以以此为跳板攻击内网或其他服务器。

两者区别:CSRF是用户端发起请求,攻击者利用用户的Cookie信息伪造用户请求发送至服务器;而SSRF是服务端发起的请求,攻击者通过构造指定URL地址获取网页文本内容、加载指定地址的图片、下载等方式,利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

在防御方面,可以采用以下方法:

1.禁止跳转;

2.过滤返回信息,验证远程服务器对请求的响应是否符合标准;

3.禁用不需要的协议,如file://, gopher://, ftp://等;

4.设置URL白名单或限制内网IP(使用gethostbyname()判断是否为内网IP);

5.限制请求的端口为http常用的端口,例如80、443、8080、8090等;

6.统一错误信息,避免用户根据错误信息判断远端服务器的端口状态。


http://lihuaxi.xjx100.cn/news/1920474.html

相关文章

FreeRTOS学习--56讲 软件定时器

软件定时器: 用户可自定义定时器的周期,当指定时间到达后调用回调函数,用户在回调函数中处理信息 硬件定时器: 芯片自带的定时器模块,精度高,能触发中断,用户在中断服务函数中处理信息 软件定时器…

oracle下载

前言: 官网上提供都是最新的什么19c 21c这些版本,我要的是 11g 12c 或者更老的 8i 9i 这些版本。 准备下载一个oracle12c 版本,但是找了很久,最终…详情请看下面 oracle 数据库版本介绍 Oracle数据库有多个长期支持版本&#x…

JAVA 如何实现多个资源服务器的同步?

在实现多个资源服务器的同步时,我们可以使用Java中的一些技术和工具。以下是一种可能的实现方式: 明确资源服务器同步的需求。假设我们有三个资源服务器,每个服务器上都存储了一些数据,我们需要确保这些数据在所有服务器上都是一…

兔子的序列

题目: 输入描述: 第一行一个整数 n,表示序列的长度。 第二行有 n 个整数 ai,表示序列中的 n 个数分别是多少。 输出描述: 输出仅一行,表示这个序列的名字,也就是这个序列中最大的非完全平方…

flutter flutter pub cache clean和flutter clean区别

flutter pub cache clean 和 flutter clean 是 Flutter 开发中两个不同的命令,它们的作用和使用场景有所不同。 flutter pub cache clean:这个命令用于清理 Flutter 的包缓存。在使用 Flutter 进行开发时,会下载和缓存一些第三方依赖包&#…

Linux压缩算法-zstd

文章目录 概述:ZSTD压缩算法介绍:ZSTD压缩算法下载:ZSTD压缩算法编译:1、ubuntu(gcc编译):1.1、直接编译:1.2、编译库文件: 2、arm(交叉编译库文件&#xff0…

【MYSQL】MYSQL 的学习教程(十)之 InnoDB 锁

数据库为什么需要加锁呢? 如果有多个并发请求存取数据,在数据就可能会产生多个事务同时操作同一行数据。如果并发操作不加控制,不加锁的话,就可能写入了不正确的数据,或者导致读取了不正确的数据,破坏了数…

【开源】基于JAVA的智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…